Встречается на 1% собеседований по Python
Как сделать свой контекстный менеджер в классе
В Python контекстный менеджер можно реализовать через класс с методами __enter__ и __exit__.
python
class MyContextManager:
def __enter__(self):
print("Вход в контекст")
return self # или другой объект для использования в `with ... as`
text
def __exit__(self, exc_type, exc_val, exc_tb):
print("Выход из контекста")
# Обработка исключений (если нужно)
if exc_type:
print(f"Ошибка: {exc_val}")
return True # Подавляет исключение, если вернёт TrueИспользование:
with MyContextManager() as cm:
print("Внутри контекста")
text
**Ключевые моменты:**
- `__enter__` вызывается при входе в `with`, возвращает объект для `as`.
- `__exit__` вызывается при выходе, принимает данные об исключении (если оно было).
- Возврат `True` в `__exit__` подавляет исключение.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы