python decorator,它只允许执行一次给定的函数/方法并缓存结果。数据不仅可以存储在内存中,而且可以存储在磁盘上,并且在应用程序运行之间保持持久性。

call-once的Python项目详细描述


调用一次

这个项目的目的是什么?

python decorator,它只允许执行一次给定的函数/方法并缓存结果。数据不仅可以存储在内存中,还可以存储在磁盘上,并且在应用程序运行之间保持持久性。

如何安装:

pip install call-once

使用方法:

查看测试目录以获取想法。代码与python兼容>;=3.4

简单示例

importCallOncefromCallOnce.EnumsimportArgumentsMode@CallOnce.CallOnce(args_mode=ArgumentsMode.SERIALIZE_AND_HASH)defplus_one(value):print("Function invoked for {}".format(value))returnvalue+1print(plus_one(5))print(plus_one(5))print(plus_one(10))# Function invoked for 5# 6# 6# Function invoked for 10# 11

TTL

的示例
fromdatetimeimporttimedeltaimportCallOnce@CallOnce.CallOnce(ttl=timedelta(milliseconds=100))defplus_one(value):print("Function invoked for {}".format(value))returnvalue+1print(plus_one(5))print(plus_one(5))fromtimeimportsleepsleep(0.5)print(plus_one(5))print(plus_one(5))# Function invoked for 5# 6# Function invoked for 5# 6

decorator的论点是什么?

args_模式
  • argumentsmode.serialize_和_hash-调用的参数是散列的
  • argumentsmode.ignore-忽略参数并兑现第一次调用的结果(默认值)
哈希模式
  • python-正在使用标准python哈希函数(默认值)
  • hashFunction.md5-md5
ttl

DateTime.TimeDelta类型的对象,该对象定义给定结果应缓存的时间。如果没有比我们永远记住它。 默认为无

待办事项:

  • 改进字典模式的测试
  • 在硬盘上添加串行化和永久存储

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
生成的代码为什么在无人机中使用Java是不安全的?   java实体继承和鉴别器列   java使用Struts 2中sj:datepicker的beforeShow事件   JavaMaven没有安装pom文件中的所有内容,导致“缺少必需的库”x124   java将自定义GIF从assets文件夹加载到recyclerview 安卓中   java实现稀疏数组   java在获得所需结果集后关闭连接对象   java在活动中将数组值添加到MClickListener()   java如何删除单元格工厂引用   java字符串。分号分隔   Java抽象和接口   java Intellij IDEA SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”   java改造JsonArray recyclerview异常   JavaJUnit@Theory:有没有方法抛出有意义的异常?   如何在Java中将XML内容写入字符串?