最初,變量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