Курс 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. Многопоточность и асинхронное программирование в Python
  3. Расширение операции побитового «и» в Python
  4. Работа с комплексными числами в Python
  5. Логирование в Python
  6. Разделение строки на пары ключ-значение.
  7. Глобальные переменные в Python
  8. Регулярные выражения: метод match
  9. Область видимости переменных в Python
  10. Списковое включение в Python
  11. Получение пути к текущему скрипту с помощью os
  12. Управление мышью и клавиатурой с Pyautogui
  13. Асинхронное выполнение задач в процессах
  14. Работа с каталогами в Python
  15. Распаковка с оператором *
  16. Блок else в циклах.
  17. Переменные в Python
  18. Цикл for с enumerate() в Python
  19. Декораторы в Python
  20. Блок else в циклах Python
  21. Функции map, filter и reduce
  22. Проверка строки на палиндром
  23. Метод join() для объединения строк
  24. Нан-рефлексивность в Python
  25. Вычисление фазы комплексного числа
  26. Проверка версии Python
  27. TON Smart Challenge #2: участие и подготовка
  28. Уникальные значения из списка
  29. Метод enumerate() в Python
  30. Рациональные числа в Python
  31. Форматирование строк в Python
  32. Инициализация переменных
  33. Работа с JSON в Python
  34. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  35. Работа с географическими данными.
  36. Создание уникального множества
  37. Оформление текста в консоли с TermColor
  38. Преобразование данных в Python
  39. Работа с коллекциями Python
  40. Работа с YAML в Python
  41. Блок try-except-else
  42. Создание графиков в терминале
  43. Улучшенные подсказки для импорта в Python 3.12
  44. Проверка элементов списка условием

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