Встречается на 1% собеседований по Python
Какие методы нужно определить, чтобы написать свой контекстный менеджер
В 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
интервью вопросы и ответы