Курс 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. Использование type hints
  3. Замена текста в Python
  4. Python Enum Weekday Usage
  5. Метод pos в Python
  6. Фильтрация списка чисел
  7. Создание новых функций через partial
  8. Декораторы в Python
  9. Декораторы с аргументами в Python
  10. Bootle — простой веб-фреймворк
  11. Списковое включение в Python
  12. Метод Event.wait() в Python
  13. Работа с Requests для HTTP-запросов
  14. Форматирование строк в Python
  15. Декораторы в Python
  16. Порядок и длина множеств в Python
  17. Оптимизация сравнения в Python
  18. Объединение словарей в Python
  19. Работа с часовыми поясами в Python.
  20. Цикл for в Python
  21. Функции высшего порядка в Python
  22. Константы в модуле cmath
  23. Создание уникального проекта
  24. Работа со словарями с defaultdict из collections
  25. Проверка типа объекта в Python
  26. Декоратор total_ordering для сравнения объектов
  27. Python Метод sleep() из time
  28. Условное добавление элементов в список
  29. Вакансии в Nebius
  30. Многострочные комментарии в Python
  31. Структуры данных в Python
  32. Частичное совпадение пользовательского ввода в Python 3.10
  33. Нахождение хеша для бесконечности и NaN в Python
  34. Декораторы в Python
  35. Функция rsplit() в Python
  36. Использование подчеркивания в REPL
  37. Numpy: использование Ellipsis
  38. Поиск самого длинного слова в списке с использованием max()
  39. Оболочка Python
  40. Создание таблиц в Python с PrettyTable
  41. Принципы программирования
  42. Логирование с Logzero
  43. Генерация чисел с range()
  44. Оператор is в Python
  45. Измерение времени выполнения кода

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