[имя] спросил: Ты знаешь, что такое контекстный менеджер? Писал ли ты его вручную, и для чего?

Контекстный менеджер управляет входом и выходом из блока with, обычно для гарантированной очистки ресурсов. Он реализует __enter__ и __exit__ либо создаётся через contextlib.contextmanager.

Короткий ответ

Что ответить на собеседовании

Контекстный менеджер управляет входом и выходом из блока with, обычно для гарантированной очистки ресурсов. Он реализует enter и exit либо создаётся через contextlib.contextmanager.

Подробный разбор

Ответ с пояснениями

Контекстный менеджер управляет входом и выходом из блока with, обычно для гарантированной очистки ресурсов. Он реализует enter и exit либо создаётся через contextlib.contextmanager.

Пример использования — временная настройка, lock или собственный ресурс. exit получает сведения об исключении; истинный результат подавляет его, поэтому возвращать True без причины опасно. В генераторном варианте освобождение помещают в finally вокруг yield. Если enter не завершился, обычный exit этого менеджера не вызывается. Личный опыт написания опишите отдельно и честно, не заменяя его теоретическим примером.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее