Курс 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. F-строки в Python 3.8
  2. Получение пути к текущему скрипту с помощью os
  3. Запрос DELETE с библиотекой requests
  4. Удаление дубликатов в pandas
  5. Нахождение хеша для бесконечности и NaN в Python
  6. Аннотации типов в Python
  7. Управление импортом в Python
  8. Фильтрация списка от «ложных» значений
  9. Список переменных с %who
  10. Сравнение строк в Python
  11. Создание копии списка в Python
  12. Удаление элемента по индексу
  13. Оператор match в Python
  14. Объединение списков в строку
  15. Обмен данными с asyncio.Queue
  16. Поиск HTML-элементов с BeautifulSoup
  17. Генераторы в Python
  18. Поиск элементов BeautifulSoup
  19. Бинарный поиск
  20. Разделение строк в Python
  21. Подсчет элементов в Python
  22. Работа с defaultdictами в Python
  23. Генерация чисел с range()
  24. Объединение списков с использованием itertools.chain
  25. Разделение строки на пары ключ-значение.
  26. Добавление элемента к кортежу
  27. Docstring в Python
  28. Работа с итераторами в Python
  29. Создание итерируемых объектов
  30. Оптимизация памяти в Python
  31. Функция zip() для объединения списков
  32. Метод Self в Python
  33. Операторы увеличения и уменьшения в Python
  34. Создание .exe файла с pyinstaller
  35. Взаимодействие с sys
  36. Defaultdict в Python
  37. Метод ipow для возведения в степень
  38. Сравнение строк в Python
  39. Сериализация данных в JSON с помощью json.dumps
  40. Работа с итераторами через срезы
  41. Использование эмодзи в Python
  42. Dict Comprehension в Python
  43. Получение срезов итераторов

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