class my_class(object):
def __init__(self):
self.ref = 0
self.ask = 0
self.added = self.ref + self.ask
inst = my_class()
inst.ref = 5
inst.ask = 7
print(inst.ref + inst.ask)
print(inst.added)
Run Code Online (Sandbox Code Playgroud)
我想print(inst.added)返回12但它返回0
最简单的方法是创建added一个方法并调用它:
>>> class A:
... def __init__(self):
... self.ref = 0
... self.ask = 0
... def added(self):
... return self.ref + self.ask
...
>>> a = A()
>>> a.ref = 5
>>> a.ask = 7
>>> a.added()
12
>>>
Run Code Online (Sandbox Code Playgroud)
或者你可以创建added一个属性,让你可以像数据属性而不是方法一样访问它:
>>> class A:
... def __init__(self):
... self.ref = 0
... self.ask = 0
... @property
... def added(self):
... return self.ref + self.ask
...
>>> a = A()
>>> a.ref = 5
>>> a.ask = 7
>>> a.added
12
>>>
Run Code Online (Sandbox Code Playgroud)