a = 500
b = 500
print(a is b)a -= 200
b -= 200
print(id(a))
print(id(b))
print(a is b)a -= 200
b -= 200
print(a is b)
输出:
True
2009951075280
2009951075472
False
True
我们知道Python一切都是对象,对于不可变对象,新的变量只是相当于引用了它,值相同就是同一个对象。对于-5~256的int值,存在一个缓存池,不论怎么计算得到的都是同一个对象。但是在这之外的,如果是定义的值(如500)是同一个对象,如果是计算得到的则不是。