2013-05-14 99 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__ 變量。