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

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