在 Python 2.7 中,我对 OrderedDict 有这种行为
from collections import *
id(OrderedDict())
42101904
id(OrderedDict())
42071680
id(OrderedDict())
42071680
id(OrderedDict())
42071680
id(OrderedDict())
42071680
为什么?
在 Python 2.7 中,我对 OrderedDict 有这种行为
from collections import *
id(OrderedDict())
42101904
id(OrderedDict())
42071680
id(OrderedDict())
42071680
id(OrderedDict())
42071680
id(OrderedDict())
42071680
为什么?
这不是特定的OrderedDict()
,Python 正在重用释放的内存来存储新对象。
从id()
功能文档:
返回对象的“身份”。这是一个整数(或长整数),保证在其生命周期内对于该对象是唯一且恒定的。具有不重叠生命周期的两个对象可能具有相同的
id()
值。
您只是为callOrderedDict()
创建一个对象,当该调用完成时,没有其他引用该对象的东西了。因此它会再次从内存中删除,并且下次运行时会在完全相同的内存位置创建一个新对象。id()
id(OrderedDict())
这就是 id() 函数的作用,它返回一个对象的唯一标识符,你正在创建多个对象,所以你得到不同的 id。