python类依赖于对方,如何初始化?

时间:2011-09-21 07:34:23

标签: python

我有两个班级:

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

但这似乎是不洁净的。这可以解决吗?

1 个答案:

答案 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)