Курс 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. Модуль inspect
  3. Генераторы в Python
  4. Транспонирование матрицы
  5. Проверка дубликатов в Python
  6. Декораторы в Python
  7. Управление виртуальными средами в Python
  8. Работа с модулем os в Python
  9. Удаление и повторная вставка ключа в OrderedDict
  10. Управление памятью в numpy.
  11. Именование столбцов в Python с pandas
  12. Поиск уникальных элементов строкой в Python
  13. Хеширование паролей с использованием salt
  14. Подсчет элементов в Python
  15. Замена символов в строке
  16. Обрезка изображения с Pillow
  17. Декоратор total_ordering для сравнения объектов
  18. Операторы += в Python
  19. Оптимизация памяти с __slots__
  20. Работа с collections в Python.
  21. Преобразование числа в список цифр
  22. Работа с утверждениями в Python
  23. Преобразование Excel в PDF с Spire.XLS
  24. Декоратор проверки активности
  25. Python Enum Weekday Usage
  26. Генераторы в Python
  27. Методы shutil для работы с файлами
  28. Работа с PosixPath() в Python
  29. Работа с комплексными числами в Python
  30. Преобразование генераторов в циклы
  31. Удаление falsy-значений из списка с помощью filter
  32. Создание веб-приложения с Flask
  33. Избегайте использования goto
  34. Получение атрибутов и методов класса
  35. Разделение строки с регулярными выражениями
  36. Функции any() и all() в Python
  37. Работа со стеком в Python
  38. Создание объекта времени
  39. List Comprehension Tutorial
  40. Lambda-функция в Python: использование с map() и sum()
  41. Удаление дубликатов из списка с помощью dict.fromkeys
  42. Список переменных в Python
  43. Игра Виселица на Python
  44. Преобразование многоуровневого словаря

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