【发布时间】:2010-08-04 04:51:20
【问题描述】:
id(对象)
这是一个整数(或长整数),保证在其生命周期内对于该对象是唯一且恒定的。
你能解释一下这个输出吗?为什么j的id变了?
>>> i=10
>>> id(i)
6337824
>>> j=10
>>> id(j)
6337824
>>> j=j+1
>>> id(j)
6337800
>>> id(i)
6337824
【问题讨论】:
-
是不是 i 和 j 最初是对同一个对象的对象引用。但是当 j 发生变化时,它们开始引用不同的对象?
-
关于它们最初相同的原因,请参阅 [ Python “is” 运算符对整数的行为异常](stackoverflow.com/questions/306313/…)。基本上,int 是不可变的对象,但小的都被保留作为优化。
标签: python