如果一个变量被分配了任何新内容,分配给“旧内容”的内存是否会被“适本地”释放?例如,在下面的脚本中,在为“a”分配一些新内容后,变量“a”作为零数组的内存是否会被释放
import numpy
a = numpy.zeros(1000)
a = a+1
我会想象 Python 足够聪明,可以使用所谓的“垃圾收集”干净地完成所有事情,但我从来没有真正读懂过它。任何确认?我将不胜感激。
最佳答案
最终,旧内存将被释放,尽管您无法预测何时会发生这种情况。它取决于 Python 实现和许多其他因素。
也就是说,对于您给出的示例和 CPython 实现,旧数组应该在分配期间被垃圾回收。
(请注意,NumPy 数组是讨论垃圾收集器行为的一个特别复杂的示例。)
关于Python:当为变量分配新内容时, "old"内存是否已释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10019442/