Python 中有小整数对象池和大整数对象池的一个概念,是指 Python 解释器对于哪个范围内的整数才进行缓存。
Python 仅仅对比较小的整数对象(范围为[-5, 256])缓存起来以供重复使用,而并非是所有整数对象。需要注意的是,这仅仅是在命令行中执行。
而在 Pycharm 或者保存为文件执行,结果是不一样的,这是因为解释器做了一部分优化(范围是[-5, 任意正整数])。
a = -5
b = -5
print(a is b)
a = -6
b = -6
print(a is b)
a = 1000
b = 1000
print(a is b)
# 运行结果:
True
False
True