我有两个班级:
class A(object): def __init__(self, b): self b = b class B(object): def __init__(self, a): self a = a
我想这样做:
a = A(b) b = B(a)
但我不能因为{b}在执行a = A(b)
时不存在。我必须这样做:
a = A() b = B(a) b.a = a
但这似乎是不洁净的。这可以解决吗?
答案 0 :(得分:5)
你可以让一个类实例化另一个:
class A(object):
def __init__(self):
self.b = B(self)
class B(object):
def __init__(self, a):
self.a = a
a = A()
b = a.b
或者让一个班级告诉对方自己,如:
class A(object):
def __init__(self, b):
self.b = b
b.a = self
class B(object):
def __init__(self):
#Will be set by A later
self.a = None
b = B()
a = A(b)