Курс 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. Работа с Enum в Python3.
  3. Проверка списка: any() и all()
  4. Профилирование данных с Pandas.
  5. Работа с байтовыми строками в Python
  6. Метод index() в Python
  7. Работа с библиотекой requests
  8. Получение ID текущего процесса
  9. Работа с Event() в threading
  10. Операторы присваивания в Python
  11. Добавление элементов в список: append() vs extend()
  12. Mad Libs Generator
  13. Регистрация на хакатоне
  14. Автоматизация с Python
  15. Функции range() в Python
  16. Модуль math: основные функции
  17. Установка виртуального окружения Python
  18. Проблема сравнения словарей
  19. Замена переменных в Python
  20. Импорт с альтернативным именем
  21. Работа с датами в Python
  22. Навыки Python: строки, типы данных
  23. Управление мышью и клавиатурой с Pyautogui
  24. Анализ текста на русском языке с помощью Pymystem3
  25. Декораторы в Python
  26. inspect в Python: анализ кода
  27. Numpy: объединение массивов
  28. Множественное наследование в Python
  29. Основы работы с базами данных в Python
  30. Деление в Python
  31. Принципы Zen of Python
  32. Создание обратного итератора
  33. Сортировка в Python
  34. Декораторы в Python
  35. Решатель судоку на Python с pygame
  36. Установка и использование модуля Wikipedia
  37. Философия Python
  38. Работа с пользовательским вводом
  39. Поиск элементов BeautifulSoup
  40. Многоточие в Python
  41. Метод get для словарей
  42. Проверка условий в Python
  43. Подписка на @SelectelNews
  44. Запуск внешних программ с subprocess
  45. Объединение объектов в Python
  46. Оператор «is not» в Python
  47. Сортировка и разворот списка

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