Курс 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"
- Лямбда-функции в Python
- Многопоточность и асинхронное программирование в Python
- Расширение операции побитового «и» в Python
- Работа с комплексными числами в Python
- Логирование в Python
- Разделение строки на пары ключ-значение.
- Глобальные переменные в Python
- Регулярные выражения: метод match
- Область видимости переменных в Python
- Списковое включение в Python
- Получение пути к текущему скрипту с помощью os
- Управление мышью и клавиатурой с Pyautogui
- Асинхронное выполнение задач в процессах
- Работа с каталогами в Python
- Распаковка с оператором *
- Блок else в циклах.
- Переменные в Python
- Цикл for с enumerate() в Python
- Декораторы в Python
- Блок else в циклах Python
- Функции map, filter и reduce
- Проверка строки на палиндром
- Метод join() для объединения строк
- Нан-рефлексивность в Python
- Вычисление фазы комплексного числа
- Проверка версии Python
- TON Smart Challenge #2: участие и подготовка
- Уникальные значения из списка
- Метод enumerate() в Python
- Рациональные числа в Python
- Форматирование строк в Python
- Инициализация переменных
- Работа с JSON в Python
- Перезапуск ячейки в Jupyter Notebook с dostoevsky
- Работа с географическими данными.
- Создание уникального множества
- Оформление текста в консоли с TermColor
- Преобразование данных в Python
- Работа с коллекциями Python
- Работа с YAML в Python
- Блок try-except-else
- Создание графиков в терминале
- Улучшенные подсказки для импорта в Python 3.12
- Проверка элементов списка условием















