2.4Kпросмотров
30 мая 2025 г.
📷 ФотоScore: 2.6K
Более простой способ создания контекстных менеджеров Почти год назад на канале было объяснение про то, что такое контекстные менеджеры и зачем они нужны. Также был пост, показывающий, как создавать классы с использованием протокола менеджера контекста. Но не всегда хочется реализовывать магические методы enter и exit. В качестве альтернативы есть один классный прием в пакете contextlib. Там протокол управления контекстом реализован с использованием декоратора contextmanager. Первая часть функции tag, которая идёт до yield, выполняется при входе в блок with. Затем исполняется сам этот блок, а после этого завершается оставшаяся часть функции tag. #contextlib