Курс 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
- Заказ карты Тинькофф Black
- Работа с NumPy.linalg
- Сравнение неупорядоченных списков
- Форматирование объектов с модулем pprint
- Метод setdefault() в Python
- Получение атрибутов и методов класса
- Официальный канал Python в Telegram
- Операции с датами в Python
- Обработка ошибок в Python
- Возврат нескольких значений
- Модуль pprint: улучшение вывода данных
- Описание скриптов в README
- Открытие и редактирование скриптов Python
- Автоматизация скриптов на AWS Lightsail.
- Добавление Progressbar в Python
- Оболочка Python
- Проверка ввода с помощью isdigit
- Курс по дообучению ChatGPT
- Изменение элемента списка
- Объединение словарей в Python
- Форматирование строк в Python
- Python enumerate() функции
- Создание namedtuple из словаря
- Обязательные аргументы в Python
- Создание пользовательской коллекции в Python
- Магические методы в Python
- Библиотека funcy: удобные утилиты
- Комментарии в Python
- Обновление данных через PUT запрос
- Эффективная конкатенация строк с использованием join()
- Python Метод sleep() времени
- Создание новой даты в Python
- Использование модуля __future__
- Работа с многоуровневыми словарями в Python
- Запуск внешних программ с subprocess
- Обмен значений переменных в Python
- Реверс строки в Python
- Отладка утечек памяти в Python
- Обновление и получение данных в SQLite
- Копирование объектов в Python
- Создание коллекций из генератора
- Транспонирование 2D-массива с помощью zip
- Поиск с помощью регулярных выражений
- Python Ellipsis использование















