Декоратор на факториал
Не могу понять, почему не работает функция факториала, когда добавляю декоратор
import time
def time_f(func):
def inner(*args, **kwargs):
start = time.time()
func(*args, **kwargs)
finish = time.time()
print(finish - start)
return inner
@time_f
def test(n):
time.sleep(1)
if n == 1:
return 1
return test(n - 1) * n
@time_f
def test_2():
time.sleep(1)
print('www')
print(test(2))
test_2()
Ответы (1 шт):
Автор решения: splash58
→ Ссылка
потому что вы ничего не возвращаете из функции inner. Добавьте возврат того, что приходит из test
def time_f(func):
def inner(*args, **kwargs):
start = time.time()
x = func(*args, **kwargs)
finish = time.time()
print(finish - start)
return x
return inner