10.1 构建一个模块的层级包

    封装成包是很简单的。在文件系统上组织你的代码,并确保每个目录都定义了一个init.py文件。例如:

    一旦你做到了这一点,你应该能够执行各种import语句,如下:

    绝大部分时候让init.py空着就好。但是有些情况下可能包含代码。举个例子,init.py能够用来自动加载子模块:

    像这样一个文件,用户可以仅仅通过import grahpics.formats来代替import graphics.formats.jpg以及import graphics.formats.png。

    敏锐的程序员会发现,即使没有init.py文件存在,python仍然会导入包。如果你没有定义init.py时,实际上创建了一个所谓的“命名空间包”,这将在10.5小节讨论。万物平等,如果你着手创建一个新的包的话,包含一个init.py文件吧。

    原文: