[英]Should I create new python packages by default as namespace packages?
Python 3.3 具有隱式命名空間包 (PEP420),在 Python 2.7 中,可以通過在 __init__py 中添加兩行來將包標記為命名空間包。 請參閱如何在 python 中創建命名空間包。
鑒於包啟用的功能,看起來新包應該默認創建為命名空間包。
普通的 python 包應該只在明顯需要“封閉”包的特殊情況下使用。
這種方法的缺點是什么?
PEP 420指出常規包具有性能優勢:
無意刪除對常規軟件包的支持。 如果開發人員知道她的包永遠不會成為命名空間包的一部分,那么作為常規包(帶有
__init__.py
)具有性能優勢。 常規包的創建和加載可以在它沿路徑定位時立即發生。 對於命名空間包,必須在創建包之前掃描路徑中的所有條目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.