Python中类的循环引用

Python中类的循环引用,python,class,Python,Class,我有几个类,每个类在初始化时创建下一个类的引用。但是,我无法通过变量分配它们,因为您无法将第一个变量分配给最后一个,因为它还不存在: class5= Class5(class1) # UnresolvedReference here class4= Class4(class5) class3= Class3(class4) class2 = Class2(class3) class1= Class1(class2) # There's also this, but it's the same

我有几个类,每个类在初始化时创建下一个类的引用。但是,我无法通过变量分配它们,因为您无法将第一个变量分配给最后一个,因为它还不存在:

class5= Class5(class1)  # UnresolvedReference here
class4= Class4(class5)
class3= Class3(class4)
class2 = Class2(class3)
class1= Class1(class2)

# There's also this, but it's the same thing

wiring = Class1(Class2(Class3(Class4(Class5(???)))))

最后一个怎么能引用第一个呢?这些类需要是可互换的,欢迎任何帮助

基本上,您希望这样做:

foo=foo(汽车)
baz=baz(foo)
汽车=汽车(baz)
你不能这样做。但是,如果给定的参数为non-None,则可以尝试通过让构造函数调用
initialize()
方法来进行延迟构造

foo=foo(无)
baz=baz(foo)
汽车=汽车(baz)
foo.初始化(汽车)

我很好奇您需要这个周期的场景是什么,因为这看起来可能是一个问题。我记得曾经遇到过一个类似的问题(有两个相互引用的类),我发明了一个复杂的模拟类来解决这个问题,而更简单(也是首选)的解决方案是让它们只是一个类。在这种情况下,看起来您只需要在构造函数之外设置这些值。