在某些迭代任务期间覆盖变量时,变量到底什么时候被垃圾收集?例如,假设我们有一个内存密集型函数,some_function(). 该函数还返回一个大对象data。
def some_function(x):
...
return data
Run Code Online (Sandbox Code Playgroud)
如果在某些迭代任务期间调用此函数,例如
for x in some_iterable:
output = some_function(x)
Run Code Online (Sandbox Code Playgroud)
新变量output一旦被some_function()调用就会被垃圾收集吗?或者它只在返回新值时释放内存?我只关心内核中释放的内存,而不一定是系统中释放的内存(所以我可能错误地使用了术语“垃圾收集”)。