Обычно протокол управления контекстом реализовывают с помощью класса и двух магических методов: enter и exit. Но такой подход может показаться слегка сложным.
Так вот, помимо написания своего класса, есть еще один способ создать контекстный менеджер — использовать декоратор
@contextmanager из встроенного пакета contextlib.Первая часть функции tag, которая идёт до yield, выполняется при входе в блок with. Затем исполняется сам этот блок, а после этого завершается оставшаяся часть, которая идет после yield.
Подписывайтесь на канал 👉@pythonofff
