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