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 Android Espresso如何检查字符串是否缩写   java jar从cmd写入文件,但不能双击   Grails中的java onetomany映射|我可以在复合键中使用生成的值吗?   java HttpsURLConnection在尝试添加Cookie时已连接   java在Netbeans中不能有同名的包和类   如何在格式化字段自动更改无效输入(Swing)Java时触发事件   用户输入后java JTextArea未更新   java试图用新字符替换字符串中的特定字符   java类加载器在Linux上显示错误路径   java mySQL远程数据库未连接   java如果接口需要MyObject对象,如何返回错误对象?   java无法解析在MainActivity之外调用安卓类时的符号   java如何将应用程序文件正确添加到appium所需的功能?   Java中浮点数组的数据对齐算法