如何通过多个依赖注入连接不同类的变量?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过多个依赖注入连接不同类的变量?相关的知识,希望对你有一定的参考价值。
我正在尝试进行依赖注入以将两个类连接在一起。例如,使用以下代码:
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()
class one()
具有类two()
的属性'a',类two()
具有b
类的属性one()
。但很明显我从self.C_one = one()
班的three()
行得到了一个错误,因为我还不知道self.C_two
。如何在我的示例中创建两个类之间的互惠链接?
答案
如果one
需要two
和two
需要one
那么你唯一的解决方案是使用one
或two
的两阶段初始化:
class three():
def __init__(self):
self.C_one = one(None)
self.C_two = two(self.C_one)
self.C_one.two = self.C_two
但它仍然是一个可能的设计气味......
以上是关于如何通过多个依赖注入连接不同类的变量?的主要内容,如果未能解决你的问题,请参考以下文章