Встречается на собеседованиях • сегодня
Как передать аргументы в декоратор
Декораторы с аргументами требуют дополнительного уровня вложенности. Внешняя функция принимает аргументы декоратора, а внутренняя — саму декорируемую функцию.
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)`
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы