Курс 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. Замена символов в строке
  3. Метод repr() в Python
  4. Округление дробей в Python
  5. Python: изменяемые и неизменяемые коллекции
  6. Цикл for в Python
  7. Перевернуть список в Python
  8. Просмотр атрибутов и методов класса
  9. HTTP-запросы с библиотекой Requests
  10. Получение имени функции с помощью inspect
  11. Функция count() в Python
  12. Сравнение def и lambda в Python
  13. Модуль math: константы π и e
  14. Профилирование данных с Pandas
  15. Работа со строками в Python
  16. Работа с collections.Counter
  17. Работа с атрибутом dict
  18. Ограничение ресурсов в Python
  19. Подсчет элементов в Python
  20. Работа с дробями в Python
  21. Работа с zip-архивами в Python
  22. Транспонирование 2D-массива с помощью zip
  23. Изменение списка срезом
  24. Оптимизация параметров в Python
  25. Сравнение строк в Python
  26. Метод ior для битовых операций
  27. Инверсия списков и строк в Python
  28. Обязательные аргументы в Python
  29. Генерация фальшивых данных с Faker
  30. Подписка на SelectelNews в Twitter
  31. Проверка типов с использованием isinstance
  32. Условные выражения в Python
  33. Поиск наиболее частого элемента в списке
  34. Циклы в Python
  35. Генераторы в Python
  36. Список и кортеж в Python
  37. Переменная Шредингера
  38. Работа с deque в Python
  39. lru_cache оптимизация функций
  40. Кортеж в Python: создание, доступ, изменение
  41. Управление пакетами с pip
  42. Функция zip() в Python

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