我真的很想知道當我們在python中導入一個模塊文件時會發生什麼。我的意思是它的過程,換句話說python會運行或檢查什麼?像__init__.py
或sys.modules等。 例如我知道__init__.py
是每個包中必需的文件,我想知道python這些文件對於導入時間有什麼作用? 請爲我點亮這個。在Python中導入模塊時會發生什麼?
3
A
回答
6
閱讀tutorial section about modules,import statement,imp
module(特別是示例)的文檔,也可能是__import__
builtin的文檔。這應該讓你有很長的路要走。如果你還想知道更多,我會建議問一個具體的問題,這個問題有點寬泛。
編輯:再次閱讀您的問題後,您的問題有一個特定的部分,關於什麼__init__.py
包。它基本上可以是空的或包含初始化代碼,該代碼將在導入該包時執行。詳情請參閱section about packages。
在__init__.py
中,您還可以設置__all__
,它定義在執行from yourpackage import *
時將導入哪些符號。這在importing * from a package中有詳細說明。
相關問題
- 1. 在Ironpython中導入模塊時會發生什麼?
- 2. 當我在Python中導入模塊兩次時發生了什麼
- 3. 模塊導入時真的發生了什麼?
- 4. 爲什麼導入python模塊不導入嵌套模塊?
- 5. 當模塊初始化發生異常時會發生什麼
- 6. 在Python中,當你在函數內部導入時會發生什麼?
- 7. python會在多次導入模塊時優化模塊嗎?
- 8. 在python 2.7中導入cplex 12.5模塊會產生unicode錯誤
- 9. Firefox擴展javascript模塊:未導出符號會發生什麼?
- 10. 在Python中導入模塊
- 11. 在Python中導入模塊
- 12. 在Python中導入模塊
- 13. Python - 爲什麼導入子模塊會使包可見?
- 14. 僅在Python中不存在模塊時才導入模塊
- 15. 當GIT子模塊「脫機」時會發生什麼?
- 16. 當我們重新加載Elixir模塊時會發生什麼?
- 17. swf嵌入時會發生什麼?
- 18. 在Python中導入模塊的所有方法是什麼?
- 19. 爲什麼沒有在Python 3的'sys.modules'中導入的模塊?
- 20. 當python的reload()沒有找到模塊文件時會發生什麼?
- 21. 導入模塊時會導出{foo as bar}會有什麼影響
- 22. Python模塊導入*
- 23. Python模塊導入
- 24. 導入Python模塊
- 25. Python導入模塊
- 26. python導入模塊
- 27. Python安裝包不會導入模塊
- 28. Python模塊,但不會導入
- 29. python - spaCy模塊不會導入
- 30. TMUX Session不會導入Python模塊
謝謝盧卡斯!現在我明白了,當我們導入一個模塊時,python首先在內置模塊中搜索它,如果它找不到它,python將它作爲.py模塊在sys.path中搜索,好嗎?我想知道什麼時候python在我們的包中找到這個模塊,它對/__init__.py文件有什麼作用?什麼時候它是一個空文件?我們可以在這個文件中輸入什麼樣的代碼?你能用例子來展示嗎?謝謝 – Deniz
@Deniz'__init __。py'只要在導入包時就像其他模塊一樣執行。你可以做任何你想要的東西,就像其他任何Python模塊一樣。如果它是空的,它的功能就是將Python包與常規目錄區分開來的標記文件。 –