Курс 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. Создание объекта timedelta
  2. Создание GUI с Tkinter: Entry
  3. Работа с итераторами в Python
  4. Декораторы с аргументами
  5. Вложенные генераторы в Python
  6. Генераторы списков в Python
  7. Получение текущей даты и времени
  8. Транспонирование 2D-массива с помощью zip
  9. Проектирование Singleton с метаклассом
  10. Поиск частых элементов в списке
  11. Замыкания в Python
  12. Метод enumerate() в Python
  13. Особенности ключей словаря в Python
  14. Работа со строками
  15. Раздувающийся словарь в Python
  16. Просмотр атрибутов и методов класса
  17. Хранение данных с помощью dataclasses
  18. Генераторы в Python
  19. Подсчет элементов в Python
  20. Переменные в Python: сокращение гласных
  21. Отладка в Python
  22. Объединение строк с помощью метода join
  23. Применение функции к элементам списка
  24. Установка и использование howdoi
  25. Переменные в Python
  26. Сохранение и загрузка модели в PyTorch
  27. Разработка игры Pong с turtle
  28. Подсчет частоты элементов с Counter
  29. Работа с zip-архивами в Python
  30. Разделение строки с помощью split()
  31. Модуль math: основные функции
  32. Преобразование типов данных в set comprehension
  33. Измерение времени выполнения кода
  34. Возврат нескольких значений из функции
  35. Обновление данных через PUT запрос
  36. Обратный список чисел
  37. Операторы сравнения в Python
  38. Преобразование строки в число
  39. Работа с модулем os в Python
  40. Хешируемые ключи в Python
  41. Оператор continue в Python
  42. Профилирование с cProfile
  43. Оператор Walrus в Python 3.8
  44. Разбиение текста в Python
  45. Инверсия списка и строки в Python

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