是否可以声明一个类变量,它将产生两个其他类变量的总和

Tho*_*son 3 python oop

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

jua*_*aga 6

最简单的方法是创建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)