Курс 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. Преобразование range в итератор
  4. Повторение элементов в Python
  5. Lambda Functions in Python
  6. Ввод нескольких значений
  7. Перемешивание списка с shuffle()
  8. Работа с Enum в Python3.
  9. Наиболее частотные элементы с помощью Counter
  10. Объединение списков с помощью zip
  11. Генераторы в Python
  12. Копирование в Python
  13. Склеивание строк через метод join()
  14. Фильтрация списков с itertools
  15. Проверка вхождения подстроки
  16. Модуль itertools: комбинации и перестановки
  17. Обновление данных через PUT запрос
  18. Создание пользовательской коллекции в Python
  19. Конвертация коллекций в Python
  20. Избегайте ошибку FileNotFoundError
  21. Цикл for в Python
  22. Генераторы в Python
  23. Динамическая типизация в Python
  24. Выход из профиля в Django
  25. Декораторы в Python
  26. Colorama: окрашивание текста в Python
  27. Метод ipow для возведения в степень
  28. Печать списка с помощью метода join
  29. Работа с IP-адресами в Python
  30. Отладчик pdb: начало работы
  31. Генераторы в Python
  32. Анализ кода — Python
  33. Удаление специальных символов
  34. Функция enumerate в Python
  35. Работа со словарями в Python
  36. Python и Юникод: работа с цифрами
  37. Многострочные комментарии в Python
  38. Сортировка с помощью key
  39. Сумма элементов списка
  40. Управление виртуальными окружениями в Python
  41. Удаление ключа из словаря
  42. Оператор умножения для вектора
  43. Создание даты из строки ISO
  44. Удаление символа из строки

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