a = 1
b = 1
c = a+1
d = c-1
print(id(a), id(b), id(c), id(d))
输出
140711144624936 140711144624936 140711144624968 140711144624936
此时 abd 用了同一个内存地址
a = 1111111111111111111111111111111111111
b = 1111111111111111111111111111111111111
c = a+1
d = c-1
print(id(a), id(b), id(c), id(d))
输出
2610854062544 2610854062544 2610854065760 2610854065712
可以看到 仅仅是把a 和b 的数值调整一下 d 的地址就不跟ab 相同了
总结:数很小时,相等的数数字总是使用相同的地址 是同一个对象
数很大时,相等的数字也会用同一个地址,但是经过运算后,会指向不同的地址,也就是变成了另一个对象
具体原因有待研究,欢迎各路大佬补充!!!