簡體   English   中英

我應該默認創建新的 python 包作為命名空間包嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM