Что такое метод __del__ и когда он вызывается?
Уровень: Senior
Ответ
__del__ – деструктор объекта. Вызывается интерпретатором в момент удаления объекта (когда счётчик ссылок на него стал 0, и сборщик мусора решил его уничтожить). В __del__ можно описать завершающие действия (например, освободить внешний ресурс). Но время вызова __del__ неопределено (особенно при циклических ссылках, объект может жить до конца программы), поэтому полагаться на него не рекомендуется. Чаще используют контекстные менеджеры или явное закрытие. __del__ вызывается также при завершении программы для оставшихся объектов, но порядок вызова в этом случае не гарантируется.