在python中,包含一個或多個模塊的目錄有時有__init__.py
,因此該目錄可以被視爲python package
,這是正確的嗎? __init__
有什麼不同? (也是另一個Q,是一個Python模塊只是一個Python代碼文件與相關,可能無關的(其他文件)的一組類,函數和變量?)`__init__`對目錄有什麼不同?
0
A
回答
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是相當豐富的信息。
相關問題
- 1. 爲什麼'setup.py develop'允許導入沒有'__init__.py'的目錄?
- 2. 爲什麼svn對待文件和目錄如此不同?
- 3. 爲什麼我不能使用__init__.py從python的sibling目錄導入包?
- 4. 爲什麼PyLint會提示沒有__init__?
- 5. 爲什麼不將__init__分配給超類的__init__?
- 6. 對象複製。有什麼不同?
- 7. EQU對DC.B.有什麼不同?
- 8. 對象與文件有什麼不同?
- 9. Erlang與OOP對象有什麼不同?
- 10. __init__的用途是什麼?
- 11. 相同的ASP.NET虛擬目錄,不同的行爲,爲什麼?
- 12. 在Python中,如何從__init__.py中導入在同一目錄
- 13. 對不同目錄中的同一文件有ccache鏈接
- 14. CMake - 針對不同目標的不同包含目錄?
- 15. __init__.py在當前工作目錄
- 16. 目錄內容和目錄條目有什麼區別?
- 17. Definnig Asp.net內部對象在不同的地方有什麼不同?它們之間有什麼不同?
- 18. 爲什麼AVAsset曲目對於相同的視頻文件有不同的timeRange?
- 19. 3種不同類型的JavaScript對象,有什麼不同?
- 20. 方法同步vs對象同步有什麼不同?
- 21. 不同的OS JRE有什麼不同?
- 22. NFS對子目錄的不同權限
- 23. 有什麼相同或不同的項目
- 24. 爲什麼來自父目錄的Gnumake行爲不同?
- 25. 爲什麼fastlane的工作目錄與我設置的不同
- 26. 好奇,爲什麼系統說,這是從不同的目錄
- 27. 爲什麼getcwd()會返回與本地pwd不同的目錄?
- 28. 爲什麼http和https協議指向不同的目錄?
- 29. 爲什麼Filezilla和Putty的目錄列表不同?
- 30. 爲什麼Windows上的`bin`目錄調用不同(「腳本」)?
您應該閱讀[教程](http://docs.python.org/tutorial/modules.html)。 –