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

Python Junior Без компании
Как сделать свой контекстный менеджер в классе
Ответы
В Python контекстный менеджер можно реализовать через класс с методами `__enter__` и `__exit__`. ``` class MyContextManager: def __enter__(self): print("Вход в контекст") return self # или другой объект для использования в `with ... as` 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("Внутри контекста") ``` **Ключевые моменты:** - `__enter__` вызывается при входе в `with`, возвращает объект для `as`. - `__exit__` вызывается при выходе, принимает данные об исключении (если оно было). - Возврат `True` в `__exit__` подавляет исключение.