Назад к вопросам
Junior — Middle
66
Каким образом реализовать собственный менеджер контекста в Python, оформленный в виде функции?
Ответ от нейросети
sobes.tech AI
В Python можно создать собственный менеджер контекста в виде функции с помощью декоратора contextlib.contextmanager. Это позволяет использовать конструкцию with для управления ресурсами.
Пример простого менеджера контекста, который выводит сообщения при входе и выходе из блока:
from contextlib import contextmanager
@contextmanager
def my_manager():
print("Вход в контекст")
try:
yield # точка, где выполняется тело with
finally:
print("Выход из контекста")
# Использование:
with my_manager():
print("Внутри блока with")
Вывод будет:
Вход в контекст
Внутри блока with
Выход из контекста
Таким образом, yield разделяет код на две части: до yield — код инициализации, после — код очистки. Это удобный способ создавать менеджеры контекста без написания класса с методами __enter__ и __exit__.