######a
=257
b=257
print(id(a),id(b))
说的是没有错的,小整数对象池就是这样的。
a=257
b=257
print(id(a),id(b))
运行结果
2599128439120 2599128439120
当你将b设置成跟a一样的常量值时,不管这个值是多大,一开始都会直接将b指向a的地址
而当你将b进行加减乘除运算后,如果是小整数,只要a和b的值相同,那么地址依然一样
而如果不是小整数,地址就会不一样了
你不修改它,它当然一样
此外,看好你学的到底是python2还是python3,语法和设置都有很大不同
你上面数说的是pyton2的版本,小整数的定义是 [-5, 257),只有数字在-5到256之间它们的id才会相等,
但是在python3中已经做了优化,当a和b都等于同一个数时(最大值是2的8次方,最小值是-2的6次方),id也是相同的