Створюємо контекстний менеджер за допомогою декоратора
Зазвичай протокол управління контекстом реалізовують за допомогою класу та двох магічних методів: __enter__ та __exit__. Але такий підхід може здатися трохи складним.
Однак, окрім написання свого класу, є ще один спосіб створити контекстний менеджер — використовувати декоратор @contextmanager із вбудованого пакету contextlib.
Перша частина функції tag, що іде до yield, виконується при вході в блок with. Потім виконується сам цей блок, а після цього завершується частина, що залишилася, яка йде після yield.
#practice // Python