现在,你必须开始观察组织你的程序的层次结构。变量通常在函数内部。函数和全局变量通常在模块内部。如果你想组织模块?这就牵涉到了包的概念。
包实际上是一个文件夹,它包含了若干模块,使用一个特殊的__init__.py 文件,指示Python这个文件夹是特殊的,因为它包含Python模块。
假设你想创建一个叫做’世界’的程序包,分装’亚洲’、’非洲’等等,分包按序包含’印度’、’马达加斯加’等等。
包只是为了更加方便的分层次组织模块。在标准库中,你会看到包的许多实例。
例如,创建一个名为Graphics的文件夹,并添加一个空文件__init__.py和若干模块,就构成了一个包:
Graphicd/
__init__.py
Jpg.py
Gif.py
Png.py
Bmp.py
包可以帮助我们解决以下问题:
- 为平坦的名称空间加入有层次的组织结构
- 允许程序员把有联系的模块组合到一起
- 允许分发者使用目录结构而不是一大堆混乱的文件
- 帮助解决有冲突的模块名称