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
,也不在乎它是否改变。这是否回答了您的问题。还涉及: