创建复合命名空间包。
namespace的Python项目详细描述
简而言之,namespace.py允许您创建复合命名空间 不改变任何子模块的包。
>>> import namespace >>> ns = namespace.Namespace() >>> ns.proxy("ns.path", "os.path") >>> import ns.path >>> import sys >>> ns.path == sys.modules["os.path"] True
这里的基本思想是为 名称空间,然后附加各个子包 到命名空间。
例如:
# mynamespace.py import namespace ns = namespace.Namespace() ns.proxy("mynamespace.web", "django")
然后客户端程序包可以将此命名空间程序包用作:
import mynamespace.web.forms as forms
这也许不是最好的例子,但希望它能 好主意。
另一个需要注意的是,这不允许在 如果包选择位于其中,则为命名空间。我不觉得 有足够的创造力想出一个好的解决办法。我很漂亮 当然可以用setuptools中的钩子来完成。