Встречается на собеседованиях • сегодня
Можно ли сделать декоратор с аргументами
Да, можно. Для этого нужно создать декоратор, который принимает аргументы и возвращает функцию-декоратор. Это достигается с помощью вложенных функций.
Пример:
python
def repeat(num_times):
def decorator_repeat(func):
def wrapper(*args, **kwargs):
for _ in range(num_times):
result = func(*args, **kwargs)
return result
return wrapper
return decorator_repeat
@repeat(num_times=3)
def greet(name):
print(f"Hello, {name}!")
greet("Alice") # Выведет "Hello, Alice!" 3 раза
text
Здесь:
1. `repeat(num_times)` — фабрика декораторов, принимающая аргумент.
2. `decorator_repeat(func)` — сам декоратор, принимающий функцию.
3. `wrapper` — обёртка, выполняющая логику.
Такой подход позволяет гибко настраивать поведение декоратора.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы