我们即将学习的是:在Python中实现更简单好用的函数运算缓存。 函数运算缓存,顾名思义就是我们可以针对指定的函数,让其记住过往参数输入和返回结果,使得后续接收到相同的参数时跳过函数运算,直接返回已缓存的结果值。 很多朋友应该知道Python标准库里functools.lru_cache可以做函数运算缓存,但是它的功能实在是太简陋了,像过期时间设置之类的功能都没有。 而我们可以使用第三方库cachier来代替,它的基本使用方式非常简单,使用pip install cachier完成安装后,我们来看一个简单的示例: 这里我们定义一个具有一定运算耗时的函数,利用cachier.cachier()装饰,并利用参数stale_after设置缓存到期时间为10秒:
importtime fromcachierimportcachier fromdatetimeimporttimedelta @cachier(stale_after=timedelta(seconds=10)) defdemo(x:int,y:int): time.sleep(2) returnx*y foriinrange(10): print('-'*50) print(f'第{i+1}次执行') start=time.time() demo(1,1) print(f'耗时{round(time.time()-start,2)}秒') time.sleep(2)过程打印记录如下: 可以观察到,我们的函数按照设定好的过期时间进行着缓存。除此之外,cachier还有很多其他实用特性,譬如基于mongodb实现分布式存储等,你可以前往其官方仓库查看详细文档说明:https://github.com/shaypal5/cachier
审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
存储
+关注
关注
13文章
4296浏览量
85798 -
函数
+关注
关注
3文章
4327浏览量
62569 -
python
+关注
关注
56文章
4792浏览量
84627
原文标题:Python 中更好用的函数运算缓存
文章出处:【微信号:AI科技大本营,微信公众号:AI科技大本营】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
如何使用LUA脚本在串口屏中实现简单的逻辑运算以及字符处理
物联型串口屏通过 LUA 脚本配合工程可以完成大部分的内部逻辑处理,可以做到让 MCU 只参与数据处理,不参与屏的逻辑处理。本文将介绍如何使用 LUA 脚本在串口屏中实现简单的逻辑
发表于 10-17 08:00
•17次下载
python函数概念理解
函数是可以实现一些特定功能的小方法或是小程序。在Python中有很多内建函数,当然随着学习的深入,我们可以学会创建对自己有用的
Python支持递归函数
Python支持递归函数——即直接或间接地调用自身以进行循环的函数。递归是颇为高级的话题,并且它在Python中相对少见。然而,它是一项应该
python函数返回多个参数
。 在Python中,可以使用关键字 return 来返回一个或多个值。在函数定义的末尾,可以使用 return 语句来指定
复数中i在Python中如何定义
复数中的虚数单位'i'在Python中可以通过使用cmath模块来定义和使用。cmath模块提供了处理复数的函数和常量。
python中如何引入math库
在Python中,要使用math库,首先需要先引入它。math库是Python的一个标准库,它提供了许多数学函数和常数。通过使用math库,
split在python中的用法
split在python中的用法 split()是Python中一个非常常用的字符串函数,它能够根据指定的分隔符将一个字符串分割成多个子字符
逻辑异或运算符在Python中的用法
,Python中的 ^ 符号实际上是一个按位异或运算符,用于对整数的二进制表示进行异或操作。 尽管如此,我们仍然可以通过一些方法来实现逻辑异或的功能,即当两个布尔值不同时为真,相同时为
评论