Контекстный менеджер управляет входом и выходом из блока with, например закрывает файл или освобождает ресурс даже при исключении внутри блока.
Работали ли вы с контекстными менеджерами в Python? Что это такое и для чего они нужны?
Контекстный менеджер управляет входом и выходом из блока with, например закрывает файл или освобождает ресурс даже при исключении внутри блока.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Контекстный менеджер управляет входом и выходом из блока with, например закрывает файл или освобождает ресурс даже при исключении внутри блока.
Протокол обычно реализуется методами enter и exit; также можно использовать contextlib.contextmanager. Типичный пример — with open(...) as file, после которого файл закрывается автоматически.
exit может подавить исключение, вернув истинное значение, поэтому поведение менеджера важно понимать. Это не универсальная гарантия при аварийном завершении процесса. В ответе об опыте назовите конкретный ресурс и то, от какой ошибки управления им помог with.