Встречается на собеседованиях • сегодня

Как сделать свой контекстный менеджер в классе

В 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__` подавляет исключение.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы