用于小/大整数的Python内存分配

时间:2014-01-27 03:25:49

标签: python

有人可以解释下列情况吗?

在我遇到的情况下,我想到了一些相反的事情。对于小对象,例如1,python可以为不同的引用分配新对象。但是对于大型对象,例如10000 ......,python可以继续重用相同的内存。但我在这里的情况清楚地表明了相反的情况。

在案例II中,'a'和'b'都指大型物体。如果情况我有道理,为什么将一个元组分配给'a'和'b'最终会得到'a'和'b'具有相同的id?

案例I

>>> a = 1
>>> b = 1
>>> id(a), id(b)
(140293399709656, 140293399709656)

>>> a = 100000000000000000
>>> b = 100000000000000000
>>> id(a), id(b)
(140293400116296, 140293400116344)

案例II

>>> a = 100000000000000000
>>> b = 100000000000000000
>>> id(a), id(b)
(140293400116296, 140293400116344)

>>> a, b = 100000000000000000, 100000000000000000
>>> id(a), id(b)
(140293400116320, 140293400116320)

0 个答案:

没有答案