我遇到了如下所示的情况,其中每个类都需要另一个类,并且它创建了循环依赖关系。我在使用 ctypes 包装一些 C 代码时遇到了这种情况。
已经有很多关于这个主题的帖子,但我发现它们没有帮助,我需要一些例子。
Module A:
from B import C2
class C1(object):
def __init__(self):
self.name = "C1"
self.c2 = C2()
Module B
from A import C1
class C2(object):
def __init__(self):
self.name = "C2"
self.c1 = C1()
Main
from A import C1
if __name__ == "__main__":
o = C1()
print(o.name)
解决方案(假设无限递归已解决):
避免这种循环依赖。
将相互依赖的组件放入同一个模块中。
Use import A
and import B
而不是from ...
形式。 (如果涉及包,这在某些情况下可能会失败。)
使用函数级导入。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)