python两个不同变量相加_Python:是否可以链接属于两个不同类的两个变量?
我想將兩個變量連接到兩個不同的類但我不知道我正在嘗試做的是否可能.
例如,如果我有這兩個類:
class one():
def __init__(self):
self.a = 0
def compute(self):
self.a = self.a + 1
class two():
def __init__(self):
self.a = 0
self.C_one = one()
self.link()
def link(self):
self.a = self.C_one.a
def compute(self):
self.C_one.compute()
print('C_one a=',self.C_one.a )
print('C_two a=',self.a )
C_two = two()
for i in range(5):
C_two.compute()
在第二類中,我想將變量a與第一類的變量a連接起來,所以每次執行C_two.compute時我都不必顯式調用self.a = self.C_one.a
示例中的代碼給了我這個:
C_one a= 1
C_two a= 0
C_one a= 2
C_two a= 0
C_one a= 3
C_two a= 0
C_one a= 4
C_two a= 0
C_one a= 5
C_two a= 0
這不是我期望的結果.
有人知道我能在python中做到嗎?
更新
從下面的例子
class one():
def __init__(self):
self.a = 0
def compute(self):
self.a = self.a + 1
class two():
def __init__(self):
self.a = 0
class three():
def __init__(self):
self.C_one = one()
self.C_two = two()
self.b = 0
def compute(self):
self.C_one.compute()
#self.C_two.a = self.C_one.a
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()
是否可以使用deceze的答案并替換注釋行#self.C_two.a = self.C_one.awith屬性?就像第一類和第二類在第三類中相關聯一樣.
來自deceze的回答
class one():
def __init__(self):
self.a = 0
def compute(self):
self.a = self.a + 1
class two():
def __init__(self,one):
self.C_one = one
@property
def a(self):
return self.C_one.a
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()
總結
以上是生活随笔為你收集整理的python两个不同变量相加_Python:是否可以链接属于两个不同类的两个变量?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python装饰器深度讲解_python
- 下一篇: python将数字转为0010_用Pyt