包是一种管理 Python 模块命名空间的形式,采用”点模块名称”。
比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。
sound/ 顶层包__init__.py 初始化 sound 包formats/ 文件格式转换子包__init__.pywavread.pywavwrite.pyaiffread.pyaiffwrite.pyauread.pyauwrite.py...effects/ 声音效果子包__init__.pyecho.pysurround.pyreverse.py...filters/ filters 子包__init__.pyequalizer.pyvocoder.pykaraoke.py
目录只有包含一个叫做 init.py 的文件才会被认作是一个包
导入语句遵循如下规则:如果包定义文件 init.py 存在一个叫做 all 的列表变量,那么在使用 from package import * 的时候就把这个列表中的所有名字作为包内容导入
__all__ = ["echo", "surround", "reverse"]
这表示当你使用from sound.effects import *这种用法时,你只会导入包里面这三个子模块
