用于记录函数结果的修饰符(也用于类)

python-memo的Python项目详细描述


说明

memoizekeyed memoize装饰器。

  • memo:经典的memoize装饰器。它有一个缓存 args -> result这样您就不会继续执行相同的计算了。
  • keymemo(key):此装饰器工厂充当memo,但它允许 指定接受修饰函数的key函数 并计算一个key值以用作缓存字典中的键。这种方式 例如,可以使用字典的单个值作为缓存的键, 或者在将某些内容传递到缓存之前应用函数。
  • instancememo:可以应用于 类函数。它保留一个缓存args -> result,这样您就不会继续 进行同样的计算。缓存保存在类命名空间中。
  • instancekeymemo(key):这个装饰工厂的工作方式类似于 instancememokeymemo,因此它允许指定 根据函数参数生成缓存密钥,并可以应用 对函数进行分类。

用法

frommemoimportmemo@memodeffibonacci(n):ifn<=2:return1returnfibonacci(n-1)+fibonacci(n-2)
frommemoimportkeymemo@keymemo(lambdatup:tup[0])deffunction(tup):# build a cache based on the first value of a tuple...

安装

包已上载到PyPI,因此您可以使用pip:

pip install python-memo

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

推荐PyPI第三方库


热门话题
如果SQL server执行计划是流式传输数据,那么调用next()时Java ResultSet对象将如何反应?   java为什么水平滚动条永远不会出现在JTable上?   java如何在Android项目中添加SDK模块   绿脚:爪哇。lang.ClassCastException:无法将障碍物投射到球投射物   xslt需要在Java1.4.2中使用SaxonB(版本9.1.0.8)方面的帮助   java Apache HTTP客户端下载SOAP响应的一部分   为Java 9计划的“过滤传入序列化数据”解决了数据反序列化安全漏洞吗?   java如何使用drools对列表中的元素进行分组   java从匿名类到lambda表达式   Java中是否有不可变的单链表实现?   java动态添加按钮以滚动查看安卓   java GAE:无法为模块http请求设置管理员登录凭据   java如何在Hibernate 5 CriteriaBuilder中使用条件条件获取计数   java如何将JSON+HAL响应解析为POJO   java如何获取计算器程序,对两个以上的数字进行加、减、乘、除   java Thymeleaf+静态资源+@ResponseBody