【发布时间】:2014-01-30 22:27:18
【问题描述】:
考虑以下日志:
>>> y = 20000
>>> id(y)
36638928
>>> y = 1000000
>>> id(y)
36639264
如您所见,更改y 的值后,它的id 也发生了变化。
这是否意味着int 是不可变的?幕后发生了什么?
谢谢!
【问题讨论】:
-
是的,它是不可变的,它只是影响了一个名为
y的新变量。随意在网上google这些东西,网上已经有很多资源了.. -
您没有更改存储在
y中的值,而是为y分配了一个新值。即使该值是可变的,这也会更改id。 -
我推荐阅读bit.ly/pynames(真的是每一个python程序员)。
-
这与
int是不可变的这一事实无关。分配的右侧是不同的对象,这很重要。