我希望每次使用时都要计算一个变量.例如,每次打印var1时var1 = var2 var3.如何创建这样的“动态”变量?
var2 = 4
var3 = 2
print(var1) # 6
var3 = 8
print(var1) # 12
解决方法:
你需要一个类实例上的属性.该属性将在每次访问时执行一些代码.例如,这是一个属性,每次访问时都会增加其值.定义访问属性的dunder方法,以便在对对象执行操作时自动增加它.例如,定义__str__和print(var)将增加该值.
class MyVar(object):
def __init__(self, initial=0):
self._var1 = initial
@property
def var1(self):
self._var1 += 1
return self._var1
def __str__(self):
return str(self.var1)
var1 = MyVar()
print(var1) # 1
print(var1) # 2
print(var1.var1) # 3
计算var1 = var2 var3:
class MyVar(object):
def __init__(self, var2, var3):
self.var2 = var2
self.var3 = var3
@property
def var1(self):
return self.var2 + self.var3
var = MyVar(4, 2)
print(var.var1) # 6
var.var3 = 8
print(var.var1) # 12
标签:python
来源: https://codeday.me/bug/20190715/1466187.html