Back to questions
Фабрика Решения
СБЕР Центр ИИ
Junior — Middle
61
Какими методами можно реализовать механизм управления контекстами в Python?
Companies where asked
Soft Media Group
ООО Цитадель
Answer from AI
sobes.tech AI
В Python механизм управления контекстами реализуется с помощью протокола контекстного менеджера, который включает методы __enter__ и __exit__.
Основные способы реализации:
- Класс с методами
__enter__и__exit__
class MyContextManager:
def __enter__(self):
print("Вход в контекст")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("Выход из контекста")
# Можно обработать исключения, если нужно
with MyContextManager() as cm:
print("Внутри блока with")
- Декоратор
@contextmanagerиз модуляcontextlib
Позволяет создавать контекстные менеджеры с помощью генераторов, что упрощает код:
from contextlib import contextmanager
@contextmanager
def my_context():
print("Вход в контекст")
yield
print("Выход из контекста")
with my_context():
print("Внутри блока with")
Оба способа широко используются в Python для управления ресурсами, например, для открытия файлов, работы с сетевыми соединениями и т.д.