标准库中的装饰器,用于保存函数运行结果

标准库中的装饰器,用于保存函数运行结果

import time
import functools
def clock(func):
    def clocked(*args):
        t0=time.perf_counter()
        result = func(*args)
        elapsed = time.perf_counter() -t0
        name = func.__name__
        arg_str = ','.join(repr(arg) for arg in args)
        print('[%0.8fs] %s(%s) -> %r' %(elapsed,name,arg_str,result))
        return result
    return clocked


@functools.lru_cache()
@clock
def fibonacci(n):
    if n<2:
        return n

    return fibonacci(n-2)+fibonacci(n-1)

if __name__=='__main__':
    print(fibonacci(6))

猜你喜欢

转载自blog.csdn.net/qq_41000421/article/details/84638248