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的一个新值如果你在一个对象的上下文中,你会在对象之外寻找,我不太确定。