Курс Python → Управление контекстом с помощью декоратора contextmanager
Для создания объектов, поддерживающих выражение with, можно использовать декоратор contextmanager. Этот способ управления контекстом более удобный и понятный, чем использование методов __enter__ и __exit__. При использовании декоратора contextmanager необходимо определить функцию, которая будет являться менеджером контекста.
Примером такой функции может быть функция tag, которая будет выполнять определенные действия при входе и выходе из блока with. Первая часть функции tag (до ключевого слова yield) будет выполняться при входе в блок with, затем будет выполнен сам блок, а после выхода из блока будет выполнена оставшаяся часть функции tag.
from contextlib import contextmanager
@contextmanager
def tag(name):
print(f'')
yield
print(f'')
with tag('div'):
print('Hello, World!')
В данном примере функция tag используется как менеджер контекста для создания HTML-тегов. При входе в блок with будет выведен открывающий тег <div>, затем будет выведено сообщение Hello, World!, а при выходе из блока будет выведен закрывающий тег </div>.
Использование декоратора contextmanager позволяет упростить работу с контекстными менеджерами и сделать код более читаемым. Этот подход особенно удобен при работе с ресурсами, которые должны быть корректно открыты и закрыты, такими как файлы или сетевые соединения.
Другие уроки курса "Python"
- Работа с классами данных
- Новшества Flask 2.0
- Работа с файлами в Python
- Ошибка NotImplemented в Python
- Многоточие в Python
- Группировка элементов в словарь
- Загрузка постов Instagram
- Оценка выражений генератора в Python
- Бинарный поиск
- Управление импортом в Python
- Работа с f-строками 2.0
- Структурирование именованных констант
- Метод rsub в Python: расширение функциональности вычитания
- Нахождение разницы между списками в Python
- Оператор «моржа» (Walrus Operator)
- Создание класса в Python
- Генераторы списков в Python
- Метод gt в Python
- Генераторы словарей и множеств
- Именование переменных в Python
- Именование столбцов в Python с pandas
- Удаление дубликатов из списка с помощью dict.fromkeys
- Хешируемые ключи в Python
- Метод __imod__ для Python
- Передача словаря через **kwargs
- Создание копии списка в Python
- Python enumerate() функции
- Поиск частого элемента
- Открытие и редактирование скриптов Python
- Установка переменной среды в Python
- Вычисление натурального логарифма в NumPy
- Метод __complex__ в Python
- Создание словаря с значением по умолчанию
- Атрибуты класса и экземпляра
- Генерация QR-кодов с библиотекой qrcode
- Присвоение и ссылки
- Присоединение элементов коллекции
- Retrying в Python: повторные вызовы
- TON Smart Challenge #2: участие и подготовка
- Перегрузка операторов в Python
- Удаление файлов в Python
- JMESPath в Python
- Метод split() в Python
- Проверка условий в Python















