I want to write a decorator that will compute runtime of function that compute fibonachi number of 5(fib(5)) 10 times and will print a medium runtime value. But my decorator returns an error. How to fix this problem?
import functools import time def trace(times): def cache(func): @functools.wraps(func) def wrapper(*args, **kwargs): total = 0 for i in range(times): start = time.time() func(*args, **kwargs) end = time.time() total += (end - start) print('Medium value is {}'.format(total / times)) return func return wrapper return cache @trace(times=10) def fib(num): if num < 2: return num return fib(num - 1) + fib(num - 2) fib(5)