包是一种管理 Python 模块命名空间的形式,采用”点模块名称”。
    比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。

    1. sound/ 顶层包
    2. __init__.py 初始化 sound
    3. formats/ 文件格式转换子包
    4. __init__.py
    5. wavread.py
    6. wavwrite.py
    7. aiffread.py
    8. aiffwrite.py
    9. auread.py
    10. auwrite.py
    11. ...
    12. effects/ 声音效果子包
    13. __init__.py
    14. echo.py
    15. surround.py
    16. reverse.py
    17. ...
    18. filters/ filters 子包
    19. __init__.py
    20. equalizer.py
    21. vocoder.py
    22. karaoke.py

    目录只有包含一个叫做 init.py 的文件才会被认作是一个包

    导入语句遵循如下规则:如果包定义文件 init.py 存在一个叫做 all 的列表变量,那么在使用 from package import * 的时候就把这个列表中的所有名字作为包内容导入

    1. __all__ = ["echo", "surround", "reverse"]

    这表示当你使用from sound.effects import *这种用法时,你只会导入包里面这三个子模块