Как понять, что функция в python завершила свою работу и её переменные были удалены сборщиком мусора?

ПРИВЕДИТЕ ПОЖАЛУЙСТА ПРИМЕРЫ ) .


Ответы (2 шт):

Автор решения: Kaasi
def hi():
    x = 'HELLO'
    return x

print(hi())
def hi():
    x = 'HELLO'
    print(x) # тут функция завершается

hi()

Функция завершает свою работу, когда достигает return (если return нет - то пока не дойдет до конца, как во втором примере) и, после этого, переменные, которые были созданы в функции, удаляются сборщиком мусора автоматически, если на них больше нет активных ссылок.

→ Ссылка
Автор решения: CrazyElf

После return или просто окончания кода функции и выхода управления из неё все локальные переменные функции становятся "бесхозными". После этого их может удалить сборщик мусора. Но сборщик мусора не срабатывает моментально, он обычно вызывается только тогда, когда памяти начинает не хватать. Ну либо его можно вручную вызвать. Так что переменные функции после её окончания становятся только кандидатами на удаление. Но не удаляются моментально из памяти.

→ Ссылка