Python 如何在每次使用变量值时重新计算它?
我希望每次使用时都计算一个变量。例如,每次打印Python 如何在每次使用变量值时重新计算它?,python,Python,我希望每次使用时都计算一个变量。例如,每次打印var1时,var1=var2+var3。如何创建这样的“动态”变量 var2 = 4 var3 = 2 print(var1) # 6 var3 = 8 print(var1) # 12 您将需要类实例上的属性。每次访问该属性时,它都会执行一些代码。例如,这里有一个属性,它在每次访问时都会增加其值。定义访问属性的dunder方法,以便在对对象执行操作时自动增加属性。例如,定义\uuu str\uuu和打印(var)将增加该值 class My
var1
时,var1=var2+var3
。如何创建这样的“动态”变量
var2 = 4
var3 = 2
print(var1) # 6
var3 = 8
print(var1) # 12
您将需要类实例上的属性。每次访问该属性时,它都会执行一些代码。例如,这里有一个属性,它在每次访问时都会增加其值。定义访问属性的dunder方法,以便在对对象执行操作时自动增加属性。例如,定义
\uuu str\uuu
和打印(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
您还可以将计算函数存储在变量中,并在每次需要值时调用它:
>>> var1 = lambda: var2 + var3
>>> var2 = 4
>>> var3 = 2
>>> print(var1())
6
>>> var3 = 8
>>> print(var1())
12
@AvinashRaj不,不会的。这将检查存储在var1中的内容,然后打印var1的值,它不会进行任何计算。您可以用示例更新您的问题吗?@nu11p01n73R无论需要什么,例如,如果我希望var1始终是var2和var3的和,每次我调用var1,有必要将var2和var3相加,得到var1的一个新值如果你在一个对象的上下文中,你会在对象之外寻找,我不太确定。