【发布时间】:2020-07-28 18:34:07
【问题描述】:
我们有一个像这样的字典:
a = dict()
然后我们插入项目,例如:
for i in range(10**10):
a[i] = 0
为什么即使字典太大而无法重新分配内存,id(a) 仍保持不变?
【问题讨论】:
-
无论大小,对象都是一样的,对吧?所以,
id不会改变 -
dict对象还是一样的,不管底层内存如何。
-
这实际上是我认为的一个好问题,我不明白反对意见。我认为这可能与
id仅在 CPython 中对应于内存中对象的地址这一事实有关(参见 here) -
我同意@Djib2011 但它实际上甚至不是 CPython 的东西。无论是否是内存中的地址,[it] 都保证在其生命周期内对于该对象是唯一且常量
-
我同意,我不明白为什么这被否决了,这个问题很好,为了正确回答你需要有关内部实现的适当知识......其他答案将只是微不足道,浅薄或明显......在这个routine中,内存分配发生在哪里? +1 来自新贡献者的一个非常好的问题:P
标签: python