我一直都知道 Python 增强操作总是执行就地操作。但似乎并非适用于所有情况。当我在 上应用增强操作时integers
,它没有到位。
var1 = 1234
print(id(var1))
var1 = var1 + 4321
print(id(var1))
print()
var2 = 5678
print(id(var2))
var2 += 8765
print(id(var2))
输出:
140272195234704
140272195234928
140272195234736
140272195234896
但是当我将它应用于列表时,它就到位了。
var1 = [1, 2]
print(id(var1))
var1 = var1 + [3]
print(id(var1))
print()
var2 = [5, 6]
print(id(var2))
var2 += [7]
print(id(var2))
输出:
140461597772992
140461597413184
140461597412480
140461597412480
我的问题是,它什么时候表现为就地操作,什么时候不表现为?为什么?