返回介绍

第22章 模块代码编写基础

发布于 2024-01-29 22:24:16 字数 1273 浏览 0 评论 0 收藏 0

现在,我们已经接触了一些模块的重要概念,下面我们来看一个简单的模块实例吧。Python模块的创建很简单,只不过是用文本编辑器创建的Python程序代码文件而已。不需要编写特殊语法去告诉Python现在正在编写模块,几乎任何文本文件都可以。因为Python会处理寻找并加载模块的所有细节,所以模块很容易使用。客户端只需导入模块,就能使用模块定义的变量名以及变量名所引用的对象。

模块的创建

定义模块,只要使用文本编辑器,把一些Python代码输入至文本文件中,然后以".py"为后缀名进行保存,任何此类文件都会被自动认为是Python模块。在模块顶层指定的所有变量名都会变成其属性(与模块对象结合的变量名),并且可以导出供客户端来使用。

例如,如果在名为module1.py的文件中输入下面的def语句,并将这个文件导入,就会创建一个拥有一个属性的模块对象:变量名printer,而这个变量名恰巧引用了一个函数对象。

在继续学习之前,我们应该对模块文件名再多介绍一下。模块怎么命名都可以,但是如果打算将其导入,模块文件名就应该以.py结尾。对于会执行但不会被导入的顶层文件而言,.py从技术上来讲是可有可无的,但是每次都加上去,可以确保文件类型更醒目,并允许以后可以导入任何文件。

因为模块名在Python程序中会变成变量名(没有.py)。因此,应该遵循第11章所提到的普通变量名的命名规则。例如,你可以建立名为if.py的模块文件,但是无法将其导入,因为if是保留字。当尝试执行importif时,会得到语法错误。事实上,包导入中所用的模块的文件名和目录名(下一章讨论),都必须遵循第11章所介绍的变量名规则。例如,只能包含字母、数字以及下划线。包的目录也不能包含平台特定的语法,例如,名称中有空格。

当一个模块被导入时,Python会把内部模块名映射到外部文件名,也就是通过把模块搜索路径中的目录路径加在前边,而.py或其他后缀名添加在后边。例如,名为M的模块最后会映射到某个包含模块程序代码的外部文件:<directory>\M.<extension>。

正像上一章所提到的那样,也有可能使用C或C++(或Java,Python这门语言的Jython实现)这类外部语言编写代码来创建Python模块。这类模块称为扩展模块,一般都是在Python脚本中作为包含外部扩展库来使用的。当被Python代码导入时,扩展模块的外观和用法与Python源代码文件所编写的模块一样:也是通过import语句进行读取,并提供函数和对象作为模块属性。扩展模块不在本书讨论范围之内。参考Python的标准手册,或者参考更高级的书籍,如《Programming Python》来获得更多细节。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文