Junior — Middle
86
Parametre alan bir dekoratör oluşturulabilir mi?
AI'dan gelen yanıt
sobes.tech yapay zeka
Да, в 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, который вызывает её нужное количество раз.