contextlib.contextmanager
Чтобы сделать переход из одной папки в другу с использованием with потребуется класс на 10 строк кода. Ситуация исправляется декоратором contextmanager.Добавьте
@contextmanager на функцию и она станет доступна для работы с with. Теперь, для того же перехода, нужно 7 строк кода.Функция выполнится до yield, остановится и передаст управление блоку with, после продолжит выполнять функцию.
#урок
