【发布时间】:2021-10-06 07:56:01
【问题描述】:
我有这段代码:
a = 2
b = a
a = 3
print(b)
鉴于此,我预计 a 的值会变成 3。但是,当我执行代码时,会返回以下内容:
2
我的问题是,为什么不打印 3?在这种情况下变量不会更新吗?
【问题讨论】:
-
赋值不会使两个变量等价,它只是将值从一个复制到另一个。
-
它打印
2,因为b是2。如果您重新分配不同的变量,变量不会得到更新。必须链接到Ned Batchelder -
@balmy 这与可变性无关。可变值也会发生同样的情况。
-
您应该将赋值语句视为将名称标签附加到对象上,仅此而已.. 参见此处stackoverflow.com/a/42908412/674039
-
@Barmar 请不要在 Python 中赋值的任何解释中使用“复制”这个词 :)
标签: python