Python 为什么它在更改变量后显示相同的值?

Python 为什么它在更改变量后显示相同的值?,python,Python,我写这段代码: a=5 b=4 s=a*b print(s) 20 然后我将变量“a”更改为6: 我更改了变量“a”,当我说print(a)时,它显示新变量(6),但当我说print(s)时,它显示相同的数字(20) 我想知道为什么会这样。我以为它会显示s=24,但为什么它会再次显示20?您必须再次计算s才能更改s a=6 s=a*b 印刷品 您必须再次计算s才能更改s a=6 s=a*b 印刷品 更改a=6后,您必须再次计算s=a*b以考虑a的新值。更改a=6后,您必须再次计算s=a*b以考

我写这段代码:

a=5
b=4
s=a*b
print(s)
20
然后我将变量“a”更改为6:

我更改了变量“a”,当我说
print(a)
时,它显示新变量(6),但当我说
print(s)
时,它显示相同的数字(20)
我想知道为什么会这样。我以为它会显示s=24,但为什么它会再次显示20?

您必须再次计算s才能更改s

a=6
s=a*b
印刷品

您必须再次计算s才能更改s

a=6
s=a*b
印刷品

更改
a=6
后,您必须再次计算
s=a*b
以考虑
a
的新值。更改
a=6
后,您必须再次计算
s=a*b
以考虑
a
的新值。这是一个非常合理的问题。它没有改变的原因是
s
获取计算结果
a*b
,并且不表示实际函数
a*b
。这就是python的工作方式,它可以不同于其他语言

通过使用lambda,您可以实现与您想要的类似的功能:

a=5
b=4
s=lambda: a*b
print(s()) # prints 20
a=6
print(s()) # prints 24

注意,您必须使用
s()
调用lamdba

这是一个非常合理的问题。它没有改变的原因是
s
获取计算结果
a*b
,并且不表示实际函数
a*b
。这就是python的工作方式,它可以不同于其他语言

通过使用lambda,您可以实现与您想要的类似的功能:

a=5
b=4
s=lambda: a*b
print(s()) # prints 20
a=6
print(s()) # prints 24

注意,您必须使用
s()
调用lamdba

因为
s
20
。它不会神奇地改变。为什么它会显示一些不同的东西?如果您更改地址,您的所有账单是否会神奇地出现在您的新地址?因为我们更改了“a”和“s”的值取决于“a”的值,所以它根本不“依赖”于
a的值。它的值由它计算,一次,就这样。
s
的第一行相当于
s=5*4
。它不知道该值来自
a
,也不在乎它是否改变。这是否回答了您的问题。同样相关:因为
s
20
。它不会神奇地改变。为什么它会显示一些不同的东西?如果您更改地址,您的所有账单是否会神奇地出现在您的新地址?因为我们更改了“a”和“s”的值取决于“a”的值,所以它根本不“依赖”于
a的值。它的值由它计算,一次,就这样。
s
的第一行相当于
s=5*4
。它不知道该值来自
a
,也不在乎它是否改变。这是否回答了您的问题。还涉及: