Python:从内存中清除变量

Python:从内存中清除变量,python,pointers,memory-management,immutability,Python,Pointers,Memory Management,Immutability,下面是一段Python代码,用于演示不可变类型(如整数)如何存储在内存中: 输出: 140731768218288 140731768218288 我的理解是:10存储在内存地址140731768218288,x指向10。在内存中创建了一个整数10作为不可变的整数对象 输出: 140731768218320 140731768218320 140731768218288 我的理解是:10仍然存储在内存地址140731768218288。同时,在内存地址140731768218320处,整数11被

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

输出

140731768218288

140731768218288

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

输出

140731768218320

140731768218320

140731768218288

我的理解是:10仍然存储在内存地址140731768218288。同时,在内存地址140731768218320处,整数11被创建为不可变对象,指针x被重新分配到该地址


问题:存储10的内存地址能否以某种方式清除?(同样,我想到的例子是计算效率高的代码,它处理的是大浮点数,如果“以前”的值不能用于任何“未来”目的,则似乎没有必要在内存中存储这些值)。

CPython对
(-5256)

这是他们对这些较低数字所做的优化,我想这是一种性能改进,你可以在CPython代码中看到。(这样他们就避免了大量的创建和新PyObject的干扰)

我不认为有任何方法可以删除它们,我很确定python只是在初始化时预先创建它们


这仅适用于CPython,每个python实现都可以不同地实现这一机制。CPython对
(-5256)

这是他们对这些较低数字所做的优化,我想这是一种性能改进,你可以在CPython代码中看到。(这样他们就避免了大量的创建和新PyObject的干扰)

我不认为有任何方法可以删除它们,我很确定python只是在初始化时预先创建它们


这仅适用于CPython,每个python实现都可以以不同的方式实现这一机制

如果您不直接在python中管理内存,垃圾收集器(或引用计数,取决于实现)将进行管理。您不直接在python中管理内存,垃圾收集器(或参考计数,取决于实现)将。
x  = 10 
print (id(x)) 
print (id(10))
x  = x + 1
print (id(x)) 
print (id(11))
print (id(10))