Курс Python → Декораторы с @wraps
Декораторы — это мощный инструмент в Python, который позволяет добавлять функциональность к существующим функциям без их изменения. Они позволяют разделять код, улучшать его читаемость и повторное использование. Одним из способов создания декораторов является использование декоратора @wraps из модуля functools.
Пример использования декоратора @wraps представлен ниже. Предположим, у нас есть функция my_function, которую мы хотим декорировать с помощью my_decorator. Для этого мы определяем функцию my_decorator, внутри которой создаем внутреннюю функцию wrapper. С помощью декоратора @wraps мы копируем метаданные из декорируемой функции func, включая имя функции, документацию и другие атрибуты.
from functools import wraps
def my_decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
# Дополнительный код до вызова функции
result = func(*args, **kwargs)
# Дополнительный код после вызова функции
return result
return wrapper
@my_decorator
def my_function():
# Реализация функции
pass
my_function()
В данном примере, после декорирования функции my_function с помощью @my_decorator, мы можем вызвать ее как обычную функцию. При этом все атрибуты исходной функции будут сохранены благодаря декоратору @wraps. Это позволяет избежать потери метаданных и обеспечивает корректное отображение имени функции, документации и других атрибутов.
Использование декораторов с декоратором @wraps упрощает работу с функциями и повышает их надежность. Благодаря этому подходу код становится более читаемым, модульным и легко поддерживаемым. Декораторы позволяют добавлять общую функциональность к различным функциям, не затрагивая их исходный код.
Другие уроки курса "Python"
- Создание виртуальной среды
- Метод join для наборов
- Переворот строки с использованием цикла
- Функция zip() в Python
- Курс Data Scientist в медицине
- Удаление элемента по индексу
- Удаление символа из строки
- Выключение компьютера с помощью Python
- Возврат нескольких значений из функции
- Динамические маршруты во Flask
- Установка и использование pyshorteners
- Копирование файлов с shutil()
- Создание комплексных чисел
- Список и кортеж в Python
- Magic Commands — улучшение работы с Python
- Блок try-except-else
- Лямбда-функции для min/max
- Операция += для списков
- Регистрация на курсы SF Education
- Передача аргументов в Python
- Использование метода lower()
- Выражения-генераторы в Python
- Преобразование списка в словарь через генератор
- Асинхронный код в Python
- Работа с контекстными менеджерами
- Метод join для объединения строк
- Удаление URL-адресов в Python
- Удаление элементов из списка
- Принципы программирования
- Типы возвращаемых значений в Python
- Оператор += в Python
- Асинхронное выполнение задач в Python
- Цикл while в Python
- Форматирование объектов с модулем pprint
- Перевернуть список в Python
- Удаление элементов по срезу
- Поиск HTML-элементов с BeautifulSoup
- TypedDict для kwargs в Python 3.12
- Подсчет элементов в Python
- Работа с множествами в Python
- Атрибуты массивов в Numpy
- Основы работы со списками
- Операции с комплексными числами
- Объединение списков в Python
- Добавление элементов в список: append() vs extend()
- Изменение переменной в Python: nonlocal
- Операторы присваивания в Python
- Декораторы в Python















