在python中,类定义可能依赖于彼此:
# This is not fine
class A():
b = B().do_sth();
def do_sth(self):
pass
class B():
a = A().do_sth();
def do_sth(self):
pass
# This is fine
def FuncA():
b = FuncB()
def FuncB():
a = FuncA()
class B
来解决这种依赖,python是否有类似的结构? 答案 0 :(得分:9)
在功能案例中,我们实际上不必调用FuncB来定义FuncA。当我们实际调用FuncA时,只需要调用FuncB。
与函数不同,类的主体在定义时执行。要定义A类,我们需要实际调用一个B方法,我们不能这样做,因为B类尚未定义。
要解决此问题,我们可以定义类,然后添加属性:
class A(object):
...
class B(object):
...
A.b = B.do_sth()
B.A = A.do_sth()
如果每个do_sth
调用依赖于已执行的另一个调用,则此解析将无效。您需要执行更广泛的更改来解决问题。
答案 1 :(得分:3)
b = B.do_smth()
)上的指令,而不是在创建类的实例时执行