Курс 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. Функции min(), max(), sum()
  2. Решатель судоку на Python с pygame
  3. Декоратор @override
  4. Установка Python — Простое руководство
  5. Парсинг статей с Newspaper3k
  6. Замена символов в строке
  7. Поиск индекса элемента
  8. Списки в Python: основы
  9. Метод ior для битовых операций
  10. Функции с необязательными аргументами
  11. Измерение времени выполнения кода
  12. Динамическая типизация в Python
  13. Установка виртуального окружения Python
  14. Установка и использование Python-dateutil
  15. Атрибуты массивов в Numpy
  16. Удаление знаков препинания в Python
  17. Наследование в программировании
  18. Python: Фильтрация списков с помощью filter()
  19. Работа с *args и **kwargs в Python
  20. Работа с набором данных CIFAR10 в PyTorch
  21. Моржовый оператор в Python 3.8
  22. Замыкания в Python
  23. Методы в Python
  24. Распаковка аргументов в Python
  25. Изменения в обработке логических значений
  26. Освобождение памяти в Python
  27. Частичное совпадение ввода
  28. TON Smart Challenge #2: участие и подготовка
  29. Оператор «or» в Python
  30. Список и кортеж в Python
  31. Аргумент по умолчанию
  32. Операции с массивами в NumPy
  33. Работа с getopt
  34. Закрытие файла в Python
  35. Проблема с изменяемыми аргументами
  36. Метод rsub для пользовательских чисел
  37. Метод join() для объединения элементов
  38. Howdoi — получение ответов из терминала
  39. Работа с прокси в Python
  40. Работа со стеком в Python
  41. Декоратор total_ordering для сравнения объектов
  42. Работа с исключениями в Python
  43. Склеивание строк через метод join()
  44. Работа с файлами в Python
  45. Объединение списков в Python
  46. Изменяемые и неизменяемые объекты
  47. Встраивание HTML в Jupyter Notebook

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