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