今天才知道在Python中整型从-5到256之间的数,Python是有专门的缓存机制来管理的。
>>> a = 256
>>> b = 256
>>> a is b
True
>>> a = 257
>>> b = 257
>>> a is b
False
>>> a = -5
>>> b = -5
>>> a is b
True
>>> a = -6
>>> b = -6
>>> a is b
False
通常使用整数的范围在-5~256之间,所以Python将这段范围的整数放入缓存,方便读取,提高性能。
但是如果让解释器一次执行的话,会让a, b引用同一个对象:
>>> a = 482; b = 482
>>> a is b
True