Декоратор на факториал

Не могу понять, почему не работает функция факториала, когда добавляю декоратор

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
→ Ссылка