Курс 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"
- Переворот строки с помощью срезов
- Работа с срезами в Numpy
- Работа с файлами в Python
- Хешируемые ключи в Python
- Создание файла с проверкой ошибки
- Управление асинхронными задачами на Python.
- Основы слова
- Декоратор total_ordering для класса Point
- Логические значения в Python
- Работа с collections в Python
- Расчет времени выполнения программы
- Изменения в обработке логических значений
- Подсчет элементов с помощью Counter из collections
- Конкатенация строк в Python
- Создание комплексных чисел
- Итерация по копии коллекции
- Сравнение def и lambda функций в Python
- Вложенные генераторы в Python
- Операторы объединения в Python 3.9
- F-строки в Python 3.8
- Упрощение работы с JSON-данными в Python
- Метод join() для объединения элементов в строку.
- Бесконечные списки в Python
- Фильтрация списка чисел
- Объединение списков с использованием itertools.chain
- Модуль future Python
- Вычисление логарифмов в Python
- Парсинг статей с Newspaper3k
- Хранение переменных в словаре.
- Python Аргументы по умолчанию
- Flask: создание веб-приложений
- Хранение переменных в Python.
- Курс по дообучению ChatGPT
- Функция pow() — возвести число в степень
- Получение размера объекта с sys.getsizeof()
- Обработка ошибок ввода данных
- Оператор in и not in в Python
- Вложенные функции в Python
- Философия Python
- Функции-генераторы в Python
- Многострочные комментарии в Python
- Функциональное программирование.
- Модуль itertools: комбинации и перестановки
- Просмотр файла в Jupyter Noteboo















