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

Как передать аргументы в декоратор

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

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`) принимает параметры декоратора
2. Средний слой (`decorator`) принимает декорируемую функцию
3. Внутренняя функция (`wrapper`) реализует логику декоратора
4. При использовании синтаксис `@decorator(arg)`
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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