Курс 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. Метод __ixor__ для побитового исключающего ИЛИ
  2. Округление в Python
  3. Структура данных deque в Python
  4. Обработка исключений в Python 3
  5. Добавление элементов в список: append() vs extend()
  6. Изучение объектов с помощью dir()
  7. Списковое включение в Python
  8. Обновление ключей в Python
  9. Объединение списков с помощью zip
  10. Принципы LSP и ISP в Python
  11. Генерация случайных данных в NumPy
  12. Получение текущего времени в Python
  13. Многострочные комментарии в Python
  14. Прокачанный трейсинг ошибок
  15. Progress с библиотекой tqdm
  16. Модуль pprint
  17. Функция map() и ленивая оценка
  18. Использование type hints
  19. Перегрузка операторов в Python
  20. Преобразование Word в PDF с Spire.Doc
  21. Руководство по Pymorphy2
  22. Нахождение разницы между списками в Python
  23. Поиск файлов по шаблону
  24. Метод rlshift для битового сдвига
  25. Округление дробей в Python
  26. Создание словарей с defaultdict()
  27. Работа с часовыми поясами в Python.
  28. Обязательные аргументы в Python
  29. Измерение времени выполнения в Python
  30. Переопределение метода
  31. Метод __iand__ для пользовательских классов
  32. Генераторы списков в Python
  33. Оператор break в Python
  34. Конкатенация строковых литералов
  35. Функции с дополнением
  36. Отделение звука от видео
  37. Применение промокода в Много лосося
  38. Оператор умножения для вектора
  39. Тернарный оператор в Python
  40. Метод bool() в Python
  41. Сортировка слиянием
  42. Определение индекса элемента списка
  43. Функция zip() в Python
  44. Работа с путями в Python
  45. Сравнение def и lambda функций в Python
  46. Импорт в Python: список all
  47. Исправление ошибки NameError
  48. Решение переменной Шредингера

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