Ide的差异(Python中的内存优化)

问题描述 投票:0回答:1

我正在与DataStructures Lab合作。我发现:

a = 2
b = 2
print(id(a)) #1632496144
print(id(b)) #1632496144

a和b变量都具有相同的ID但是,当我这样做时

x = 500
y = 500
print(id(x),id(y))

这里写着,如果范围将从-3到256超出,它将给出不同的存储位置

我的问题是,为什么这些IDE给出不同的结果?

在JUPYTER笔记本中,输出是这样的:2999875658288 2999875658256不同的存储位置

而在VS CODE中,输出是这样的:

1495642916912 1495642916912相同的存储位置

python data-structures cpython
1个回答
0
投票

Python在缓存中缓存了一些小的,经常使用的值,例如这些值,因此它不必一直创建和销毁这些对象。

这是C API参考C API reference上的简短描述。

[此外,有时Python会对字符串和其他对象执行相同的操作,因此,例如,您可以对字符串“ a”进行如下操作:print(id("a"), id("a")),并得到结果140301498960896 140301498960896

我认为它使对象保持在256个字节以下,但是我不确定这个数字,因此我找不到它的参考。如果找到参考,我将编辑答案。

© www.soinside.com 2019 - 2024. All rights reserved.