Курс Python → Декораторы с аргументами

Декораторы в Python — это функции, которые позволяют изменить поведение другой функции без изменения ее кода. Создание декоратора с аргументами позволяет передавать дополнительные параметры в декоратор для более гибкой настройки. Для этого необходимо определить функцию-декоратор, которая принимает аргументы, и затем внутри нее определить еще одну функцию, которая будет выполнять основную логику декоратора.

Пример создания декоратора с аргументами:


def my_decorator(arg1, arg2):
    def decorator(func):
        def wrapper(*args, **kwargs):
            # Логика декоратора с использованием аргументов arg1 и arg2
            result = func(*args, **kwargs)
            return result
        return wrapper
    return decorator

@my_decorator(arg1, arg2)
def my_function():
    # Логика функции
    pass

Здесь мы определяем функцию my_decorator, которая принимает два аргумента arg1 и arg2. Внутри нее определяется функция decorator, которая принимает ссылку на декорируемую функцию. Внутри функции decorator определяется функция wrapper, которая выполняет основную логику декоратора с использованием переданных аргументов. Наконец, декорируемая функция my_function помечается декоратором my_decorator с передачей аргументов arg1 и arg2.

При вызове функции my_function с помощью декоратора my_decorator с аргументами arg1 и arg2, будет вызвана функция wrapper, которая выполнит логику декоратора с учетом переданных параметров. Это позволяет динамически изменять поведение функций в зависимости от переданных аргументов декоратора.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Сравнение строк в Python
  2. Векторизация в Python с NumPy.
  3. Работа с модулем os в Python
  4. Оператор * в Python
  5. Вычисление разности множеств в Python
  6. Генерация случайных чисел в Python
  7. Новшества Flask 2.0
  8. Упрощение работы с JSON-данными в Python
  9. Работа с комбинациями в Python.
  10. Сортировка и разворот списка
  11. Работа с файлами в Python
  12. Метод rmatmul для обратного матричного умножения
  13. Pretty-printing JSON в Python
  14. Python: цикл for и оператор присваивания
  15. Профилирование кода на Python
  16. Метод title() в Python
  17. Документация функции help() в Python
  18. Списковые включения в Python
  19. Дефолтные параметры в Python
  20. Хеширование паролей с солью
  21. Транспонирование 2D-массива с помощью zip
  22. Работа с контекст-менеджером «with»
  23. Создание инструмента обнаружения плагиата
  24. Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
  25. Pillow: работа с изображениями
  26. Запуск внешнего кода в Jupyter
  27. Работа со слайсами
  28. Проверка типов с использованием isinstance
  29. Получение текущей даты и времени
  30. Оператор Walrus в Python 3.8
  31. Обработка ошибок в Python
  32. Метод hash в Python
  33. Изменяемые и неизменяемые объекты
  34. Создание генераторов
  35. Хэш-функции и метод цепочек
  36. Использование html-скриптов в Jupyter Notebook
  37. JMESPath в Python
  38. Обработка исключений в Python
  39. Создание матрицы в Python
  40. Комментарии в Python
  41. Работа с файлами в Python
  42. Извлечение статей с newspaper3k
  43. Поиск индекса элемента
  44. Разбиение строки в Python
  45. Сравнение def и lambda функций в Python
  46. Метод setitem в Python

Marketello читают маркетологи из крутых компаний