>>> a = 1
>>> b = 1
>>> a is b
True
>>> a = 256
>>> b = 256
>>> a is b
True
>>> a = 257
>>> b = 257
>>> a is b
False
>>> a = 1000
>>> b = 1000
>>> a is b
False
>>>
从上面的例子可以看出,对应小整形对象,python引用的是同一个对象,整形对象是不可变的,在频繁的使用过程中会多次创建和销毁,为了提高整体性能,python对整形对象申请空间进行了优化。
对于小整形对象因为使用的频率高,python会缓存。
然而:
>>> a = 1000;b = 1000
>>> a is b
True
如果在解释器中一次执行的话,解释器又会再优化,让a,b引用同一个对象。
网友评论