gpt4 book ai didi

python - 学习 Python 中的内存分配

转载 作者:行者123 更新时间:2023-12-04 10:18:35 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What's with the integer cache maintained by the interpreter?

(1 个回答)


去年关闭。




我正在尝试学习 Python 中的引用是如何工作的

val = 10
print(id(val)) # ID: 1234

val2 = 10
print(id(val2)) # ID: 1234

我认为通过删除对该数字的所有引用,它将释放内存,并且在重新初始化时,将创建一个新引用。
val = None
va2 = None

val = 10
val2 = 10
print(id(val)) # ID: 1234
print(id(val2)) # ID: 1234

但是,当我尝试删除对对象 10 的所有引用时并再次初始化对象,它指向相同的引用。我对 Python 中的内存分配有什么误解吗?

最佳答案

缓存 -5 到 256 之间的 Python 整数。含义 Python 重用相同的对象。请注意,这是一个实现细节,您不应依赖它。请参阅文档:https://docs.python.org/3/c-api/long.html#c.PyLong_FromLong

另请注意,一旦对象被销毁,新对象可能会重用旧 id。唯一的保证是 id 在当前事件的对象中是唯一的。因此,即使在处理非缓存对象(如 val = {} )时,您的测试也不正确。

关于python - 学习 Python 中的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60966003/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com