Встречается на собеседованиях • сегодня
Какой протокол у контекстного менеджера
Контекстный менеджер в Python реализует протокол с двумя методами: __enter__() и __exit__().
__enter__()вызывается при входе в блокwith, возвращает объект для работы внутри контекста__exit__()вызывается при выходе, обрабатывает исключения и освобождает ресурсы
Пример реализации:
python
class MyContextManager:
def __enter__(self):
print("Вход в контекст")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("Выход из контекста")
if exc_type is not None:
print(f"Ошибка: {exc_val}")
return True # Подавляем исключение
with MyContextManager() as cm:
print("Внутри контекста")Ключевые особенности:
__exit__()получает информацию об исключении (если оно возникло)- Возврат True из
__exit__()подавляет исключение - Можно использовать
@contextmanagerиз модуля contextlib для упрощения

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы