Python教程

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

本文主要是介绍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
这篇关于python函数缓存装饰器@functools.lru_cache()的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!