模块打包程序代码和数据以便重用,并有自己的命名空间以便在程序中最小化命名冲突。更严格的来讲,模块是和Python的程序文件相对应的,一个文件就是一个模块,模块通过导入模块来使用其他模块中定义的变量。
模块扮演的角色:
- 代码重用
- 系统命名空间分割
- 共享服务和数据
例子
# a.py
def spam(text):
print(text, 'spam')
# b.py
import b
b.spam('gumby')
图示:
下图是在Python中的程序体系结构。有一个顶层文件,用来加载运行程序。多个模块文件,包含用到的库和工具。
代码中的import语句,给了a.py
访问在b.py
中定义的所有东西的权限,import b
其实等价于:加载文件b.py
(除非它已经被加载),给我通过变量名b
访问他的所有属性的权限。
如上图中右边所示,你程序中可能用到的模块有一部分是由Python提供的。Python中自带大量的实用模块,称作标准库,超过200个,具体有那些可以查看在线手册。