一种方法是使用import x,而不使用"from"关键字.那么你随处可见它们的命名空间.
还有其他方法吗?喜欢做类似于C++ ifnotdef __b__ def __b__类型的东西?
Fre*_*Foo 10
将任何彼此依赖的模块合并到一个模块中.然后引入额外的模块来获取旧名称.
例如,
# a.py
from b import B
class A: whatever
# b.py
from a import A
class B: whatever
Run Code Online (Sandbox Code Playgroud)
变
# common.py
class A: whatever
class B: whatever
# a.py
from common import A
# b.py
from common import B
Run Code Online (Sandbox Code Playgroud)
循环导入是一种"代码气味",并且通常(但并非总是)表明某些重构是合适的.例如,如果A.x使用B.y和B.y使用A.z,那么您可以考虑A.z进入自己的模块.
如果你认为你需要循环导入,那么我通常建议导入模块并引用具有完全限定名称的对象(即,import A使用A.x而不是from A import x).
| 归档时间: |
|
| 查看次数: |
10289 次 |
| 最近记录: |