2011-10-18 35 views
0

在python中,包含一個或多個模塊的目錄有時有__init__.py,因此該目錄可以被視爲python package,這是正確的嗎? __init__有什麼不同? (也是另一個Q,是一個Python模塊只是一個Python代碼文件與相關,可能無關的(其他文件)的一組類,函數和變量?)`__init__`對目錄有什麼不同?

+1

您應該閱讀[教程](http://docs.python.org/tutorial/modules.html)。 –

回答

2

另外,當作爲一個模塊進行處理,的__init__.py內容成爲包裝的內容物即somepackage/__init__.py內容將在dir(somepackage)import somepackage找到。

模塊本身可以是Python代碼,specially-crafted C code,或者他們可能是通過an artificial construct加載Python的VM可執行注入。

4

下面是一個explanation爲什麼需要__init__.py

__init__.py文件需要使Python將目錄視爲包含包;這是爲了防止具有通用名稱的目錄(如string)無意中隱藏稍後在模塊搜索路徑中發生的有效模塊。在最簡單的情況下,__init__.py可以只是一個空文件,但它也可以執行包的初始化代碼或設置__all__變量,稍後介紹。

正如我剛剛推薦給另一張海報,tutorial on modules是相當豐富的信息。

相關問題