阅读Aaron和PEP420的链接,看来,除了常规包可能在其中包含各种初始化代码的明显区别之外,命名空间包与常规包之间的根本区别在于,命名空间包是一个虚拟包,其内容可以沿着Python的查找路径分布在各个地方。
__init__.py
例如,给定
a/foo/bar.pyb/foo/baz.py
如果两个
b和
a在Python的路径,你可以导入
foo.bar和
foo.baz自由。
当然,这引出了一个问题,即如果
__init__.py不需要,那么在其他所有条件都相等的情况下,制作常规包或名称空间包会更好,但是有点不合时宜。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)