__del__ — финализатор, вызывается когда объект удаляется (reference count = 0 или GC собрал). Проблемы: не гарантировано когда вызовется (особенно при циклических ссылках), не гарантировано что вызовется вообще при выходе из программы. Может воскресить объект (добавив ссылку на себя). GC не может собрать циклы с __del__ (до Python 3.4). Вместо __del__ используй context manager (with) или явный close(). __del__ — для экстренного cleanup, не для основной логики.
Когда вызывается __del__ и почему его не стоит использовать?
Senior
146 просмотровAFK Offer AI
Что такое PEP 3119 (ABC)?