在顶级命名空间和子模块命名空间之间拆分模块的类

时间:2019-07-14 15:36:40

标签: python python-3.x namespaces package circular-dependency

我正在使用Python库mylibrary,它将提供三个便捷类,分别为FooBarBaz。我希望用户将它们导入为mylibrary.Foomylibarary.Barmylibrary.submodule.Baz,因为第三个确实属于子模块名称空间。但是,为了避免循环导入错误,需要在一个通用模块(_classes)中定义所有这三个模块。因此,目录结构类似于:

mylibrary
├── __init__.py
│
├── _classes.py
│
└── submodule.py

mylibrary.__init__中,我可以使用from _classes import Foo, Bar使它们在顶级名称空间中可用。但是,我无法在submodule.py中执行类似操作(例如from _classes import Baz,因为它会触发循环导入错误。

如何让三个交织在一起的类出现在名称空间的两个不同部分?

0 个答案:

没有答案
相关问题