Встречается на собеседованиях • сегодня

Как создать декоратор с аргументами

Для создания декоратора с аргументами нужно использовать вложенные функции. Внешняя функция принимает аргументы декоратора, а внутренняя — саму декорируемую функцию.

python
def repeat(num_times):
    def decorator(func):
        def wrapper(*args, **kwargs):
            for _ in range(num_times):
                result = func(*args, **kwargs)
            return result
        return wrapper
    return decorator

@repeat(num_times=3)
def greet(name):
print(f"Hello, {name}!")

greet("Alice") # Выведет "Hello, Alice!" 3 раза

text

Ключевые моменты:
1. `repeat(num_times)` — внешняя функция, принимающая аргументы
2. `decorator(func)` — средний слой, принимающий декорируемую функцию
3. `wrapper(*args, **kwargs)` — внутренняя функция, выполняющая логику декоратора

Такой подход позволяет передавать параметры в декоратор при его применении.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы