python使用lru_cache的最简小例子

python使用lru_cache的最简小例子

利用缓存,保留函数执行的返回结果,下次调用函数查找缓存直接返回,无需再次执行函数
from functools import lru_cache

@lru_cache(10)
def add(x, y):
    print("没有缓存,执行函数!")
    return x + y

print(add(1, 2))
print(add(1, 2))
print(add(2, 3))
print(add(2, 3))
print(add(1, 2))
print(add(2, 3))
print(add(6, 3))
print(add(6, 3))
print(add(6, 3))

运行结果如下:
在这里插入图片描述
清除缓存举例:

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import functools
>>> 
>>> @functools.lru_cache(maxsize=None)
def f(n):
	print("未缓存!")
	return n

>>> 
>>> 
>>> f(1)
未缓存!
1
>>> f(1)
1
>>> f(2)
未缓存!
2
>>> f(2)
2
>>> 
>>> f(3)
未缓存!
3
>>> 
>>> f(3)
3
>>> 
>>> f(1)
1
>>> 
>>> 
>>> f.cache_clear()  # 用于清除缓存
>>> 
>>> f(1)
未缓存!
1
>>> f(3)
未缓存!
3
>>> f(2)
未缓存!
2
>>> f(1)
1
>>> f(2)
2
>>> f(3)
3
>>> 
>>> f
<functools._lru_cache_wrapper object at 0x00000154F9131228>
>>> f.cache_clear()  # 用于清除缓存
>>> f
<functools._lru_cache_wrapper object at 0x00000154F9131228>
>>> 
>>> 
>>> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值