1 个回答|235 次阅读
不一样。
在python中,一个.py文件就称之为一个模块(Module)。
如果不同的人编写的模块名相同怎么办?为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。
示例:
张三写了两个模块:m1.py 和 m2.py;李四也写了俩个模块:m1.py 和 m2.py 。为了避免它们冲突,我们可以通过包来组织模块,我们选择一个顶层包名,比如 zhangsan,按照如下目录存放
zhangsan
├─ __init__.py
├─ m1.py
└─ m2.py
只要李四的顶层包名与张三的不同,那所有模块都不冲突了。
现在,m1.py模块的名称就是zhangsan.m1 , m2.py模块名称就是zhangsan.m2。
请注意,每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。
__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是zhangsan。
类似的,可以有多级目录,组成多级层次的包结构。比如如下的目录结构:
mycompany
├─ web
│ ├─ __init__.py
│ ├─ utils.py
│ └─ www.py
├─ __init__.py
├─ abc.py
└─ xyz.py
文件www.py的模块名就是mycompany.web.www
请先 登录 后评论