Курс 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. Оператор is в Python
  3. Применение функции к каждому элементу списка
  4. Форматирование строк в Python
  5. Работа с комплексными числами в Python
  6. Переворот строки с использованием цикла
  7. Импорт в Python: список all
  8. Сортировка в Python
  9. Замыкания в Python
  10. Фильтрация данных в Python.
  11. Оценка точности модели
  12. Атрибуты класса и экземпляра
  13. Использование super() в Python
  14. Преобразование списка в словарь через генератор
  15. Итераторы в Python
  16. Установка пакетов с помощью pip
  17. Именование переменных в Python
  18. Конвертация изображений в PDF
  19. Управление мышью и клавиатурой с Pyautogui
  20. Логирование в Python
  21. Роль ключевого слова self
  22. Удаление и повторная вставка ключа в OrderedDict
  23. Работа с модулем os в Python
  24. Работа с URL-адресами в Python
  25. Создание GUI на Tkinter
  26. Реализация операции -= для пользовательского класса
  27. Возврат нескольких значений из функции
  28. Обновление данных через PUT запрос
  29. Оператор assert в Python
  30. UserList в Python: Описание и примеры использования
  31. Метод rename() для переименования файлов и каталогов
  32. Метод rpow в Python
  33. Манипуляция формой массива в Numpy
  34. Измерение времени выполнения кода
  35. Регулярные выражения: метод match
  36. Работа с модулем glob в Python
  37. Работа с каталогами в Python
  38. Возврат нескольких значений
  39. Модуль sys: основы
  40. Работа с timedelta
  41. Проверка типов с помощью isinstance
  42. Измерение времени выполнения кода
  43. Разделение строк методом split()
  44. Создание и использование модулей в Python
  45. Преобразование PowerPoint в PDF.
  46. Имена объектов в Python
  47. Замена элементов в списке с помощью генераторов списков
  48. Отладка кода
  49. Метод join() для объединения элементов строки

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