Курс 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. Работа с Colorama
  2. Работа с timedelta в Python
  3. Инициализация переменных
  4. Замена символов в строке
  5. Создание объекта timedelta
  6. Контекстный менеджер в Python
  7. Создание циклической ссылки
  8. Ошибка NotImplemented в Python
  9. Метод join() для объединения элементов
  10. Counter() — подсчет элементов
  11. Транспонирование матрицы
  12. Работа с изменяемыми списками
  13. Работа с атрибутом dict
  14. Управление браузером с Selenium
  15. Округление банкира в Python
  16. Значения по умолчанию в Python
  17. Модуль os в Python: работа с файлами
  18. Работа с модулем random
  19. Копирование объектов в Python
  20. Удаление символа из строки
  21. Генераторы данных
  22. Работа с байтовыми строками в Python
  23. Официальный канал Python в Telegram
  24. Работа с очередями в Python
  25. Переопределение унарных операторов
  26. Хеширование паролей с солью
  27. Объединение словарей в Python
  28. Проверка наличия элемента в списке
  29. Удаление ключей из словаря
  30. Метод add для класса Vector
  31. Генераторы в Python
  32. Работа с парами ключ-значение
  33. Преобразование списка в словарь через генератор
  34. Работа с OpenCV
  35. Вычисление времени выполнения
  36. Использование обратной косой черты в f-строках
  37. Многопроцессорное программирование в Python
  38. Основы работы с базами данных в Python
  39. Генератор списка в Python
  40. Удаление символа из строки
  41. Сравнение объектов в Python
  42. Отправка POST-запроса в REST API
  43. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  44. Преобразование списка в словарь через генератор
  45. Defaultdict в Python

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