2013-05-14 97 views
0

创建Python包时,我被告知要创建一个名为init .py的空白文件。我不明白的是为什么我需要创建这个文件。构建脚本distutils不会对其进行修改,因此五个构建版本之后它仍然是空白的。它的目的是什么?__init__.py的用途是什么?

+4

当你不理解某些东西时,至少应该看看教程。这是有原因的。 – abarnert 2013-05-14 00:42:42

+0

@abarnert - 我使用的教程(http://guide.python-distribute.org/quickstart.html)没有提到它的用途,只是为了创建它。 – Nathan2055 2013-05-14 02:45:46

+3

该教程旨在设置您的软件包以便与其他人共享。它或多或少地假设你已经理解软件包在基本级别上的工作方式。 – 2013-05-14 03:50:43

回答

5

这是一个信号给Python,该文件夹是一个包,而不仅仅是一个文件夹。 它还包含初始化代码,该代码在程序包编辑为import时运行。

请参阅the docs on the subject了解更多信息。最相关的摘录:

__init__.py文件需要使Python将 目录视为包含包;这样做的目的是为了防止 目录使用通用名称,例如string,无意中隐藏了稍后在模块搜索路径中发生的有效模块。在 最简单的情况下,__init__.py可以只是一个空文件,但它也可以执行该程序包的初始化代码或者设置变量,如后面所描述的__all__ 变量。