最初,变量a,b和c都具有值1和相同的地址。当变量a递增1时,地址被改变,而变量b和c的地址保持相同。有人可以详细说明这个地址分配吗?将Python地址分配给变量
现在,当变量b增加1,b的地址现在等于a的地址。有人可以详细说明这一点吗?
>>> a = 1
>>> b = a
>>> c = b
>>> a += 1
>>> print a,b,c
2 1 1
>>> id(a)
26976576
>>> id(b)
26976600
>>> id(c)
26976600
>>> b += 1
>>> print a,b,c
2 2 1
>>> id(c)
26976600
>>> id(b)
26976576
>>> id(a)
26976576
请阅读http://nedbatchelder.com/text/names.html。另请注意,问题的第二部分是实现细节 - CPython实施小整数,这不是您应该依赖的行为。 – jonrsharpe