您的位置:首页 > 编程语言 > Python开发

python_functools模块实现函数调用缓存

2020-04-22 02:46 621 查看
  • Least Recently Used 的缩写, 导入这个包 使用装饰器的方式实现函数调用的缓存
  • maxsize 参数指定存储多少个调用的结果,为了得到最佳性能, maxsize 应该设为 2 的幂
from functools import lru_cache
# Least Recently Used 的缩写, 导入这个包 使用装饰器的方式实现函数调用的缓存
# maxsize 参数指定存储多少个调用的结果,为了得到最佳性能, maxsize 应该设为 2 的幂

@lru_cache(maxsize=2,typed=True)
def func(flag):
print('{} 被调用了'.format(flag))
return flag

if __name__ == '__main__':
print(func(1))
print(func(2))
print(func(3))
print(func(4))

print('---- 改一下顺序 ----')
# 下面在调用 func(4) 和 func(3) 的时候并没有调用 函数体 内的 print 语句说明没有进入到函数体, 因为设置了 maxsize = 2 所以 func(2) 和 func(1) 被冲刷掉了,需要再次调用进入函数内
print(func(4))
print(func(3))
print(func(2))
print(func(1))
  • 点赞
  • 收藏
  • 分享
  • 文章举报
╰☆阳光のboy 发布了36 篇原创文章 · 获赞 2 · 访问量 1576 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐