При перезаписи переменных во время итеративного задания, когда именно эта переменная собирает мусор?Например, скажем, у нас есть функция с интенсивным использованием памяти, some_function()
.Эта функция также возвращает большой объект, data
.
def some_function(x):
...
return data
Если эта функция вызывается во время некоторого итеративного задания, например,
for x in some_iterable:
output = some_function(x)
Получает ли новая переменная output
мусор, собранный, как только some_function()
называется?Или он освобождает память только когда возвращается новое значение?Я забочусь только об освобождении памяти в ядре, а не обязательно в системе (поэтому я могу неправильно использовать термин сборщик мусора).