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

Можно ли сделать декоратор с аргументами

Да, можно. Для этого нужно создать декоратор, который принимает аргументы и возвращает функцию-декоратор. Это достигается с помощью вложенных функций.

Пример:

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` — обёртка, выполняющая логику.  

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

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

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

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