Обязательно ли использовать метод __del__ во всех пользовательских классах, команда del - деструктор

Обязательно ли использовать __del__ метод во всех пользовательских классов? Является ли команда del деструктором?

2 ответа

Нет, del просто удаляет имя. Если объект, на который ссылается это имя, имеет другие ссылки, он будет продолжать существовать. __del__ метод не гарантированно вызывается, даже если нет ссылок на объект.

Если вам нужна предсказуемая продолжительность жизни объекта и возможность убирать за собой, используйте менеджер контекста и with заявление.

Нет и нет

Хорошее описание в документах

Вы действительно никогда не должны беспокоиться о __del__, но это деструктор и будет вызван сборщиком мусора.

del не деструктор, он просто удаляет ссылку. Когда все ссылки ушли, сборщик мусора может в конечном итоге вызвать __del__,

Другие вопросы по тегам