Курс 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"
- ROT13 Шифр Цезаря в Python
- Генераторы в Python
- Расчет времени выполнения кода
- Переворот последовательности
- Создание даты из строки ISO
- Основы работы со списками
- Встраивание HTML в Jupyter Notebook
- Упрощение работы с JSON-данными в Python
- Оператор in для Python
- Отладка производительности Python
- Роль ключевого слова self
- Удаление символа из строки
- Отрицательные индексы списков в Python
- Переворот строки с помощью срезов
- Статическая типизация в Python
- Отображение HTML кода в Python
- Python: динамическая типизация и проверка типов
- Создание словаря через dict comprehension
- Импорт и использование модулей в Python
- Работа с библиотекой requests
- Замена элементов в списке с помощью генераторов списков
- Анонимные функции в Python
- Установка переменной среды в Python
- Преобразование строки в число
- Метод get для словаря
- Генерация фальшивых данных с Faker
- Применение функции map() в Python
- Создание и инициализация объектов
- Удаление дубликатов из списка
- Retrying в Python: повторные вызовы
- Импорт классов из другого файла
- Работа со словарями
- Асинхронное выполнение задач в Python
- Преобразование чисел в Python
- Создание словарей и множеств в Python.
- Просмотр атрибутов и методов класса
- Порядок операций в Python
- Генерация QR-кодов с Python
- Получение размера объекта с sys.getsizeof()
- Удаление элементов из списка в Python
- Метод __ixor__ для побитового исключающего ИЛИ
- Методы и функции в Python
- Шаблоны Flask: условия и циклы
- Оптимизация гиперпараметров в Python
- Функция enumerate() в Python
- Дефолтные параметры в Python
- Модуль future Python















