Python:从内存中清除变量

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

下面是一个Python代码,用于演示如何将不可变类型(例如整数)存储在内存中:

x  = 10 
print (id(x)) 
print (id(10))

输出

140731768218288

140731768218288

我的理解:10存储在内存地址140731768218288中,x指向10。在内存中创建了一个整数10作为不可变的整数对象。

x  = x + 1
print (id(x)) 
print (id(11))
print (id(10))

输出

140731768218320

140731768218320

140731768218288

[我的理解:10仍存储在内存地址140731768218288。同时,在内存地址140731768218320上将整数11创建为不可变对象,并将指针x重新分配给该地址。

问题:可以以某种方式清除存储10的存储地址吗? (同样,我想到的示例是计算有效的代码,该代码处理较大的浮点数,如果这些值不会再用于“未来”目的,则似乎不必在内存中存储“先前”的值。)

下面是一个Python代码,用于演示如何将不可变类型(例如整数)存储在内存中:x = 10 print(id(x))print(id(10))输出:140731768218288 140731768218288 My ...

python pointers memory-management immutability
1个回答
1
投票

CPython对于(-5, 256)范围内的所有数字都有特殊的位置>

他们为那些较低的数字进行了这种优化,我想可以提高性能,您可以在CPython代码中看到它。 (通过这种方式,他们避免了很多新PyObject的创建和分散注意力)

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