Junior — Middle
93
Може ли се креирати декоратор који прихвата параметре?
Одговор од АИ
sobes.tech АИ
Да, в 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, который вызывает её нужное количество раз.