python functools.lru_cache 的使用

from functools import lru_cache
@lru_cache(maxsize=1, typed=True)
def func(s):
    print(s)
    return s
func(1)
1
Out[4]: 1
func(1)
Out[5]: 1
func(2)
2
Out[6]: 2
func(2.0)
2.0
Out[7]: 2.0
  • 不难看出 第一次调用func 传入1 是既打印了1 又返回了1 第二次调用相同的func 传入1时,未打印 只返回
  • 传入2.0 和2的会被认为是不同的调用,刷新缓存
  • lru_cache 的参数maxsize 代表能缓存几个函数执行的结果 typed代表是否参数类型改变时是否重新缓存

你可能感兴趣的:(python学习)