Декоратор функции
помогите разобраться с декоратором. У меня есть функция. Надо создать декоратор который позволит функции вернуть лишь один ответ если задано одно число (rope_product(8) -> 18) и много ответов списком если введённых значений будет несколько (rope_product(*[7,11,23,45,32]) -> [12, 54, 4374, 14348907, 118098])!
def rope_product(x):
num_two = 0
num_three = 0
if x == 4:
num_two = x // 2
else:
num_three = x // 3
num_two = (x % 3) // 2
max_product = 2 ** num_two * 3 ** num_three
return max_product
Ответы (1 шт):
Автор решения: entithat
→ Ссылка
def rope_decorator(func):
def wrapper_rope_decorator(*args):
return func(*args) if len(args) == 1 else [func(arg) for arg in args]
return wrapper_rope_decorator
@rope_decorator
def rope_product(x):
num_two = 0
num_three = 0
if x == 4:
num_two = x // 2
else:
num_three = x // 3
num_two = (x % 3) // 2
max_product = 2 ** num_two * 3 ** num_three
return max_product
rope_product(30, 40) # [59049, 1594323]
rope_product(30) # 59049
P.S. Сам не очень разобрался в этом. Поправьте меня, если что.