属性缓存

property-caching的Python项目详细描述


https://travis-ci.org/yola/property-caching.svg?branch=fix/md-to-rst

属性的缓存版本

由yola的人编写和使用来支持我们的free website builder

概述

  • cached_property-将修饰方法的结果存储在 装饰物 (在_cached_properties属性中)
  • class_cached_property-将修饰方法的结果存储在 装饰物的类别 (在_class_cached_properties属性中)。所有实例将共享 缓存值。
  • clear_property_cache-删除缓存值(对对象有效 仅缓存属性)
  • set_property_cache-显式设置属性缓存(适用于 仅对象缓存属性)
  • is_property_cached-允许检查属性是否已缓存 或不(仅适用于对象缓存属性)

用法

fromproperty_cachingimport(cached_property,class_cached_property,clear_property_cache,set_property_cache,truthy_cached_property)classDummy:@cached_propertydeffoo(self):returnself.service.expensive_operation()@truthy_cached_propertydefbar(self):# this value will only be cached if it doesn't evaluate to false:returnself.service.expensive_operation2()@class_cached_propertydefservice(self):returnexpensive_service_initialization()d=Dummy()d.foo# calculates result and stores it in d._cached_propertiesd.foo# uses cached valueclear_property_cache(d,'foo')# clears cache for property `foo`set_property_cache(d,'foo',42)# explicitly set cache for property `foo`d2=Dummy()d2.foo# re-calculates value of `foo` but uses cached service

测试

安装开发要求:

pip install -r requirements.txt

使用以下命令运行测试:

python setup.py test
https://travis-ci.org/yola/property-caching.svg?branch=fix/md-to-rst

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

推荐PyPI第三方库


热门话题
java我能知道文件的哪个条目正在被修改吗?   多线程Java并发线程   java抓取包含多个页面的多个字母标签的网站   为什么if语句不排除Java中的另一个if语句?   Java可序列化哈希映射到ByteArray以创建blob   JavaEclipseLombokBuilder添加新建议   java将文件路径数组转换为文件数组,并计算每个文件的大小   在Java8流中添加大小数   Bouncy Castle 1.46之前版本的java兼容性问题   无法在AWS设备场上运行安卓 Java Appium测试   java为什么不使用mavenwarplugin将键与“WEBINF/classes/METAINF/MANIFEST.MF”合并?   java如何在引用子类的成员时调用super()   找不到java TestFx无头MonoclePlatformFactory   java AbstractMethodError onClientSessionEvent和“缺少控制媒体的权限”   正则表达式如何使用JAVA在字符串的大写字母前插入空格?   我的Spring安全项目中的java BCrypt(Spring安全)   java在我的网站上查看小程序更新时遇到问题   java如何使用schedule方法