Back to questions
Junior — Middle
62
Можно ли создать декоратор, который принимает параметры?
Answer from AI
sobes.tech AI
Да, в Python можно создать декоратор, который принимает параметры. Для этого обычно создают функцию-обёртку, которая принимает аргументы декоратора и возвращает сам декоратор.
Пример декоратора с параметрами:
def repeat(times):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(times):
result = func(*args, **kwargs)
return result
return wrapper
return decorator
@repeat(times=3)
def say_hello():
print("Hello")
say_hello()
# Выведет "Hello" три раза
Здесь repeat — функция, принимающая параметр times, которая возвращает декоратор decorator. Этот декоратор оборачивает исходную функцию func в wrapper, который вызывает её нужное количество раз.