重用原始对象

一个有趣的事情可能有助于优化你的应用程序,原始实际上也是在引擎盖下重新安装。我们来看看数字; 对于 -5 到 256 之间的所有整数,Python 总是重用相同的对象:

>>> import sys
>>> sys.getrefcount(1)
797
>>> a = 1
>>> b = 1
>>> sys.getrefcount(1)
799

请注意,refcount 增加,这意味着 ab 在引用 1 原语时引用相同的底层对象。但是,对于较大的数字,Python 实际上不会重用底层对象:

>>> a = 999999999
>>> sys.getrefcount(999999999)
3
>>> b = 999999999
>>> sys.getrefcount(999999999)
3

因为 999999999 的 refcount 在将它分配给 ab 时没有改变,我们可以推断它们引用两个不同的底层对象,即使它们都被赋予相同的原语。