SobesLab логотип SobesLab

Ответ

Да, хотя сборщик мусора обычно освобождает неиспользуемые объекты, утечки возможны. Например, если объекты ссылаются друг на друга (цикл ссылок) и при этом реализуют __del__, такой цикл не будет собран (в CPython сборщик мусора не уничтожает циклы с деструкторами). Это приведёт к утечке памяти. Также утечки могут происходить из-за объектов, живущих в глобальной области, или extension-модулей на C, которые забыли освободить память. Корректное программирование (разрывать циклы ссылок или не использовать __del__ без необходимости) и профилирование памяти (например, модулем tracemalloc) помогают выявлять и устранять утечки.