Курс 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. Сортировка и разворот списка
  2. Метод __int__ в Python
  3. Карта бомбоубежищ в Москве и Питере
  4. Оформление кода на Python
  5. Группы исключений в Python
  6. Компиляция регулярных выражений
  7. Работа с файлами в Python
  8. Подробная информация о %pinfo
  9. Переопределение оператора % для объектов
  10. Функции range() в Python
  11. Выражения-генераторы в Python
  12. Подписка на каналы разработчиков
  13. Быстрый поиск кода
  14. Работа с атрибутом dict
  15. Подсчет частоты элементов с Counter
  16. Метод округления чисел
  17. Python-dateutil — работа с датами
  18. Протокол управления контекстом
  19. Установка Python3.7 и PIP
  20. Класс UserDict: дополнительная функциональность
  21. Оператор in и not in в Python
  22. Списки: объединение, изменение
  23. Операторы объединения в Python 3.9
  24. Python: цикл for и оператор присваивания
  25. Удаление элементов во время итерации
  26. Управление контекстом выполнения
  27. Генераторы в Python
  28. Настройка Cron
  29. Присоединение элементов коллекции
  30. Оператор zip в Python
  31. Рациональные числа в Python
  32. Срез в Python
  33. Создание генераторов
  34. Проверка дублей в списке.
  35. Аргумент по умолчанию
  36. Модуль antigravity: генерация координат
  37. Основные методы NumPy
  38. Форматирование строк в Python
  39. Работа с датой и временем в Python
  40. Модуль pprint
  41. Блок try…finally в Python
  42. Многострочные строки в Python

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