Курс 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. Метод hash в Python
  4. Метод join() для объединения элементов строки
  5. split() — разделение строки
  6. Генераторы данных
  7. Удаление элемента по индексу
  8. Переопределение оператора % для объектов
  9. Создание словарей с defaultdict()
  10. Непрерывная проверка в Python
  11. Сложение матриц в NumPy
  12. Создание вложенного генератора
  13. Разработка Telegram-ботов
  14. Генерация резюме в Gensim
  15. Очистка списка от False, None, 0, «»
  16. Тип данных TypeVarTuple
  17. Структура данных deque в Python
  18. Нахождение максимального значения и его индекса в списке
  19. Выбор редактора кода.
  20. Оператор обр. импликации
  21. Работа с атрибутом dict
  22. Поиск наиболее частого элемента
  23. Defaultdict в Python
  24. Обработка исключений в Python
  25. Сортировка данных с лямбда-функциями
  26. Удаление элементов из списка в Python
  27. Создание множества в Python
  28. Метод difference_update() — разность множеств
  29. Загрузка постов Instagram
  30. Наследование в программировании
  31. Лямбда-функции в Python
  32. Чтение и запись TOML-конфигов
  33. Работа с модулем bisect
  34. Вызов внешних программ в Python с помощью sh
  35. Библиотека wikipedia для Python
  36. Colorama: окрашивание текста в Python
  37. Распаковка элементов последовательности
  38. Создание таблиц в терминале с PrettyTable
  39. Справка по импортированным модулям
  40. Извлечение новостей с помощью newspaper3k
  41. Модуль xkcd: загрузка комиксов
  42. Протокол управления контекстом
  43. Условное добавление элементов в список
  44. Возврат нескольких значений

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