Курс 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"
- Распаковка значений в Python
- Списки в Python
- Установка Python — Простое руководство
- Удаление дубликатов с помощью множеств
- Удаление элементов по срезу
- Объединение строк с помощью метода join
- Очистка строки в Python
- Курс Data Scientist в медицине
- Использование функции product
- Упрощенный вывод данных в Python
- Комментарии в Python
- Переопределение метода divmod
- Списки: объединение, изменение
- Объединение словарей в Python
- Упрощение работы с JSON-данными в Python
- Поиск шаблона в начале строки
- Antigravity модуль
- Названия столбцов в Python таблицах
- Анонимные функции в Python
- Названия переменных
- Сортировка HTML-элементов
- Удаление элементов из списка в Python
- Объединение списков с помощью zip
- Проверка дублей в списке.
- Простой калькулятор Python
- Работа с кортежами в Python
- Удаление элементов во время итерации
- Метод ne для сравнения объектов
- Модуль math: константы π и e
- Получение имени функции с помощью inspect
- Работа с IP-адресами в Python
- Реверс строки и списка в Python.
- Итерация по копии коллекции
- Сортировка элементов с OrderedDict
- Генераторы в Python
- Проверка элемента в множестве.
- Преобразование строк в числа с плавающей запятой
- Форматирование строк в Python
- Работа со временем в Python
- Создание даты из строки ISO
- Метод is_absolute() для PurePath
- Метод enumerate() в Python
- Установка и загрузка Instaloader
- Декораторы в Python
- Капитализация строк















