Курс 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. Функция pow() — возвести число в степень
  2. Объединение словарей в Python
  3. Работа с изображениями Pillow
  4. Обход словаря в Python
  5. Копирование словарей и списков в Python
  6. Работа с файлами в Python
  7. Преобразование типов данных в set comprehension
  8. Сравнение неупорядоченных списков
  9. Создание класса очереди
  10. Декораторы в Python
  11. Конкатенация строк с методом join()
  12. Запуск асинхронной корутины
  13. Замена переменных в Python
  14. Работа с Requests для HTTP-запросов
  15. Повторение элементов в Python
  16. Непрерывная проверка в Python
  17. Проверка на истинность объектов в Python
  18. Декораторы в Python
  19. Модуль math: константы π и e
  20. split() без разделителя
  21. Работа со стеком в Python
  22. Управление IP-адресами через прокси
  23. Сложение матриц в NumPy
  24. Сортировка и разворот списка
  25. Отображение графиков в Jupyter с Matplotlib
  26. Работа с файлами в Python
  27. Условное добавление элементов в список
  28. Изменение списка срезом
  29. Работа с пакетами
  30. Объединение словарей в Python
  31. Сортировка с параметром key
  32. Создание словарей и множеств в Python
  33. Генераторы в Python
  34. Работа с collections в Python.
  35. Работа с модулем bisect
  36. Генерация QR-кодов с библиотекой qrcode
  37. Генераторы списков в Python
  38. Генераторные функции в Python
  39. Форматирование вывода с F-строками
  40. Область видимости переменных
  41. Проверка элементов списка условием
  42. Конкатенация строк с join() в Python
  43. Работа с изменяемыми списками
  44. Сумма элементов списка
  45. Транспонирование матрицы в Python

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