Check

Замыкания и утечки ссылок

Python Senior Яндекс
Объясните, как работают замыкания в Python. Как они могут приводить к удержанию ненужных объектов в памяти и как этого избегать?
Ответы
Closures
Замыкание — это функция, которая «запоминает» значения из внешней области видимости, даже если та уже завершилась. Эти значения хранятся в `__closure__`. Проблема: если во внешней области был тяжёлый объект, ссылка на него может сохраняться в замыкании дольше, чем нужно. Способы избежать: - не тянуть в замыкание больше, чем нужно; - использовать слабые ссылки (`weakref`) для крупных объектов; - явно разрывать ссылки, когда замыкание больше не используется.