python函数缓存装饰器@functools.lru_cache()

python函数缓存装饰器@functools.lru_cache()

参考文章:https://zhuanlan.zhihu.com/p/348370957 (Python 中 lru_cache 的使用和实现)

在编写递归函数时,可以在函数定义前面加上一个装饰器,来保存递归过程中的结果,减少程序运行的时间,如下:

import functools

@functools.lru_cache()
def func(n: int) -> int:
    a = [1,2]
    print(f"calculate {n}!")
    if n == 1:
        return 1
    else:
        return n * func(n-1)

if __name__ == "__main__":
    a = func(3)
    print(f"3! = {a}")
    b = func(5)
    print(f"5! = {b}")

# 输出结果:
# calculate 3!
# calculate 2!
# calculate 1!
# 3! = 6
# calculate 5!
# calculate 4!
# 5! = 120
上一篇:Arduino学习笔记---Blink


下一篇:Ubuntu20.04 防火墙设置