Back to questions
Рунити
СБЕР Роботы
Junior — Middle
59
Каким образом в Python реализуется механизм контекстного менеджера?
Companies where asked
Answer from AI
sobes.tech AI
В Python механизм контекстного менеджера реализуется с помощью методов __enter__ и __exit__ в классе. Контекстный менеджер позволяет автоматически управлять ресурсами, например, открывать и закрывать файлы, устанавливать и снимать блокировки.
Пример реализации контекстного менеджера:
class MyContextManager:
def __enter__(self):
print("Вход в контекст")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("Выход из контекста")
if exc_type:
print(f"Обработка исключения: {exc_val}")
return True # подавляет исключение
with MyContextManager() as cm:
print("В теле with")
# Можно вызвать исключение, чтобы проверить __exit__
# raise ValueError("Ошибка")
Кроме того, можно использовать декоратор @contextmanager из модуля contextlib для создания контекстных менеджеров на основе генераторов.