包是一个有层次的文件目录结构,它定义了一个由模块和子包组成的python应用程序执行环境
1. 为平坦的名称空间加入有层次的组织结构
2.将有联系的模块组合到一起
3.将以往一大堆的混乱文件组织成了有联系的目录结构
4.解决有冲突的模块名称
eg.... package
Phone /
__init__.py
common_util.py
Voicedta /
__init__.py
Pots.py
Isdn.py
Fax /
__init__.py
G3.py
Mobile /
__init__.py
Analog.py
Digital.py
note: Phone 是最顶层的包 Voicedta等是它的子包 。我们可以通过如下方式导入子包:
方式一:
import Phone .Mobile.Analog
use:Phone .Mobile.Analog.dial("110")
方式二:
from Phone import Mobile
use: Mobile.Analog.dial("110")
方式三:
from Phone.Mobile import Analog
use: Analog.dial("110")
方式四:
from Phone.Mobile.Analog import dial
use: dial("110")
note:
每个包或是子包中都含有一个__init__.py文件,是为了 初始化模块 from - import 语句导入子包时需要用到它