Курс 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. Функция __init__ в Python
  3. Участие в LP стейкинге Waves
  4. Определение функций с необязательными аргументами
  5. Создание списков в Python
  6. Поиск наиболее частого элемента в списке
  7. Многострочные комментарии в Python
  8. Разделение строки в Python
  9. Работа с NumPy.linalg
  10. Распаковка с оператором *
  11. Модуль inspect: получение информации о объектах
  12. Декораторы классов
  13. Удаление специальных символов
  14. Возврат нескольких значений
  15. Выражения-генераторы в Python
  16. Метод join() для объединения элементов
  17. Работа с пакетами
  18. Управление памятью в numpy.
  19. Область видимости переменных в Python
  20. Структура строк в Python
  21. Создание и инициализация объектов
  22. Нахождение разницы между списками в Python
  23. Команда %dhist — список посещенных каталогов
  24. Подсказки типов в Python
  25. Импорт модуля из другого каталога
  26. Python: отличительная особенность — отступы
  27. Оценка точности модели
  28. Подсчет элементов с помощью Counter из collections
  29. Списки в Python: основы
  30. Нан-рефлексивность в Python
  31. Сортировка элементов в Python
  32. Преобразование данных в Python
  33. Логические операторы в Python
  34. Улучшенные подсказки для импорта в Python 3.12
  35. Модуль os в Python: работа с файлами
  36. Таймер обратного отсчета
  37. Блок else в циклах.
  38. Настройка Cron
  39. Работа с изменяемыми коллекциями
  40. Работа со строками
  41. Создание копии списка в Python
  42. Разрешение имен в Python
  43. Удаление элементов во время итерации
  44. Приближение чисел в Python
  45. Работа с NumPy
  46. Глубокое копирование объектов
  47. ChainMap избыточные ключи

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