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

Python Middle Без компании
Как передать аргументы в декоратор
Ответы
Декораторы с аргументами требуют дополнительного уровня вложенности. Внешняя функция принимает аргументы декоратора, а внутренняя — саму декорируемую функцию. ``` 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 раза ``` Ключевые моменты: - Внешняя функция (`repeat`) принимает параметры декоратора - Средний слой (`decorator`) принимает декорируемую функцию - Внутренняя функция (`wrapper`) реализует логику декоратора - При использовании синтаксис `@decorator(arg)`