为什么不让这些物品得到GC' d?

时间:2014-12-29 19:10:24

标签: python

来自Python3控制台:

$ python3
Python 3.4.2 (default, Oct 19 2014, 17:55:38) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.54)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 1.23
>>> b = a
>>> id(a)
4457705664
>>> id(b)
4457705664
>>> b = 5 # new object assigned to b
>>> id(b)
4456877312
>>> a = 5 # new object assigned to a?
>>> id(a)
4456877312
>>> a = 1.23 # should be a new object?
>>> id(a)
4457705664

所以,我的问题很有希望。 a 的ID在分配给新值时会更改,但是当我重新分配值1.23时,ID实际上会更改回原来的ID。这是如何运作的?我的假设是,一旦对象 1.23丢失了它的引用,它将是GC'd。这是某种解释器优化还是什么?

0 个答案:

没有答案