是否可以将一个类中的实例变量定义为另一个的函数?除非您一直重新定义“函数实例变量”,否则我还没有开始使用它。
基本上,您可能会遇到这样的情况:您有一个实例变量,该实例变量是整数列表,并希望将它们的总和作为实例变量,每次更新列表时都会自动重新定义。
这可能吗?
class Example:
list_variable = []
sum_variable = sum(list_variable)
def __init__(self, list_variable):
self.list_variable = list_variable
return
除非您进行更改,否则将产生sum_variable = 0
。
我知道这不是主要问题,您可以将sum_variable
定义为一种方法,也可以在每次更改list_variable
时重新定义它,我只是想知道是否有可能跳过这些方法事情/步骤。
答案 0 :(得分:4)
Python提供了属性装饰器,以使您的示例在语法上完全相同:
class Example:
list_variable = []
def __init__(self, list_variable):
self.list_variable = list_variable
return
@property
def sum_variable(self):
return sum(self.list_variable)
e = Example(list_variable=[10, 20, 30])
e.sum_variable # returns 60