如何通过多重依赖注入连接不同类的变量?

我正在尝试使依赖注入将两个类连接在一起。 例如用下面的代码:如何通过多重依赖注入连接不同类的变量?

class one(): 

def __init__(self,two):

self.b = 0

self.C_two = two

def compute(self):

print(self.a)

self.b = self.b + 1

@property

def a(self):

return self.C_two.a

class two():

def __init__(self,one):

self.a = 0

self.C_one = one

def compute(self):

self.a = self.a + 1

@property

def b(self):

return self.C_one.b

class three():

def __init__(self):

self.C_one = one()

self.C_two = two(self.C_one)

self.b = 0

def compute(self):

self.C_one.compute()

print('C_one a=',self.C_one.a)

print('C_two a=',self.C_two.a)

C_three = three()

for i in range(5):

C_three.compute()

one()类具有属性“A” two()类和类two()具有one()类的属性b。但很明显,我得到three()self.C_one = one()行的错误,因为我还不知道self.C_two。如何在我的示例中创建两个类之间的相互链接?

回答:

如果one需要twotwo需要one那么你唯一的解决办法是使用两种onetwo的两阶段初始化:

class three(): 

def __init__(self):

self.C_one = one(None)

self.C_two = two(self.C_one)

self.C_one.two = self.C_two

,但它仍然是一个可能的设计气味...

以上是 如何通过多重依赖注入连接不同类的变量? 的全部内容, 来源链接: utcz.com/qa/263431.html

回到顶部