重用原始对象
一个有趣的事情可能有助于优化你的应用程序,原始实际上也是在引擎盖下重新安装。我们来看看数字; 对于 -5 到 256 之间的所有整数,Python 总是重用相同的对象:
>>> import sys
>>> sys.getrefcount(1)
797
>>> a = 1
>>> b = 1
>>> sys.getrefcount(1)
799
请注意,refcount 增加,这意味着 a
和 b
在引用 1
原语时引用相同的底层对象。但是,对于较大的数字,Python 实际上不会重用底层对象:
>>> a = 999999999
>>> sys.getrefcount(999999999)
3
>>> b = 999999999
>>> sys.getrefcount(999999999)
3
因为 999999999
的 refcount 在将它分配给 a
和 b
时没有改变,我们可以推断它们引用两个不同的底层对象,即使它们都被赋予相同的原语。