- 一个
python
文件就是一个模块Module
- 为了避免模块名重名问题,因此包
Package
,按照目录来组织管理Module
- 每一个
Package
目录下必须存在一个__init__.py
文件,可以是空文件。否则会被视为普通目录 __init__.py
也是Module
,模块名为目录名mycompany ├─ web │ ├─ __init__.py │ ├─ utils.py │ └─ www.py ├─ __init__.py ├─ abc.py └─ xyz.py
web
和mycompany
均为Package
,.py
均为Module
文件www.py
模块名为mycompany.web.www
,abc.py
模块名为mycompany.abc
__xxx__
这类变量是特殊变量,例如__name__
、__author__
_xxx
或__xxx
这样的函数或变量就是非公开的(private),不应该被直接引用- 特殊变量
__name__
, 当在命令行运行此模块时,Python 解释器会将__name__
置为__main__
, 如果在其他地方导入模块时,__name__
不为__main__
if __name__=='__main__': test()
这种 if 测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试