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

Python Middle Без компании
Можно ли сделать декоратор с аргументами
Ответы
Да, можно. Для этого нужно создать декоратор, который принимает аргументы и возвращает функцию-декоратор. Это достигается с помощью вложенных функций. Пример: ``` 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 раза ``` Здесь: - `repeat(num_times)` — фабрика декораторов, принимающая аргумент. - `decorator_repeat(func)` — сам декоратор, принимающий функцию. - `wrapper` — обёртка, выполняющая логику. Такой подход позволяет гибко настраивать поведение декоратора.