Python 3.3 中是否不再需要為包提供__init__.py 檔案?
引言:__init__.py 檔案的作用
在Python 中,__init__.py 檔案的作用是標識目錄為包,允許將該目錄的不同目錄和模組組織為一個命名空間。在 Python 2.7 及更早版本中,__init__.py 檔案是建立套件的必要條件。
Python 3.3 中的__init__.py 檔案
在Python 3.3 中,引入了隱式命名空間套件的概念,這使得即使沒有__init__.py文件,也可以建立包。這意味著現在可以將一個目錄指定為命名空間包,而該目錄中的內容可以被模組化。
命名空間包的用例
這種隱式命名空間包功能最常見的用例是允許來自不同位置的多個庫貢獻子包給父包。例如,假設有兩個庫google_pubsub 和google_storage,它們提供以下結構:
在這種情況下,google/ 和google/cloud/ 目錄必須是命名空間包,這樣才能將google_pubsub 和google_storage 包視為相同父包下的子包。
結論:
存在以下兩種類型的Python 套件:
以上是3.3 版本中的 Python 套件仍然需要 `__init__.py` 嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!