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

- 👍 7