繁体   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