Junior — Middle
97
Como implementar um gestor de contexto próprio em Python, apresentado na forma de uma função?
Resposta da IA
sobes.tech IA
В 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__.