标签:python
为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。
为什么使用模块?
和C语言类似:
1、大大提高代码的可维护性;
2、很多功能代码可以复用,可以被第三方引用;
3、不同的模块拥有不同的命名空间,可以避免函数名、变量名冲突。
要是不同的人编写的模块名相同怎么办?为了避免冲突,Python引入了按目录来组织模块的方法,成为包(package)。
举个例子:比如abc.py和xyz.py分别是模块abc和xyz。现在这两个模块名与其他模块冲突了。解决方法是设计一个顶层包名,比如mycompany,按照目录存放:
引入包以后,只要顶层包mycompany的名称不与别人冲突,那所有模块都不会与别人冲突。现在abc.py模块变成mycompany.abc模块,类似的xyz.py模块变成mycompany.xyz模块。
请注意:每个包目录下都会有,也必须有一个__init__.py文件。否则Python会把这个目录当初普通目录,而不是一个包。__init__.py可以是空文件,也可以有代码,因为本身就是__init__.py一个模块,模块名为mycompany。
也可以有多级目录,组织多层次的包结构:
文件www.py
的模块名就是mycompany.web.www
,两个文件utils.py
的模块名分别是mycompany.utils
和mycompany.web.utils
。
自己创建模块时要注意命名,不能和Python自带的模块名称冲突。例如,系统自带了sys
模块,自己的模块就不可命名为sys.py
,否则将无法导入系统自带的sys
模块。
mycompany.web
也是一个模块,请指出该模块对应的.py文件。
标签:python
原文地址:http://12877417.blog.51cto.com/12867417/1926439