Python方法的延迟加载的示例代码


Posted in Python onDecember 18, 2017

数据挖掘的过程中,数据进行处理是一重要的环节,我们往往会将其封装成一个方法,而有的时候这一个方法可能会被反复调用,每一次都对数据进行处理这将是一个很耗时耗资源的操纵,那么有没有办法将计算后的结果 缓存 起来达到 调用一次,处处运行 的效果,经过一番研究在 lazy_object_proxy/utils.py 中发现了一段代码,详见lazy_object_proxy 。

class cached_property(object):
  def__init__(self, func):
    self.func = func

  def__get__(self, obj, cls):
    if obj is None:
      return self
    value = obj.__dict__[self.func.__name__] = self.func(obj)
    return value

那么之后该怎么使用呢?下面给出了一个简单的例子:

class Test(object):
  def__init__(self,value):
    self.value = value;
@cached_property
  def display(self):
    #create expensive object
    print "some complicated compute here"
    return self.value

下面是结果

>> t = Test(1000)
>>t.display
some complicated compute here
1000
>>t.display
1000

从上面结果可以看出,只打印出了一次 some complicated compute here ,即只调用了一次,也就达到了我们的目的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python进阶篇之字典操作总结
Nov 16 Python
Python学生信息管理系统修改版
Mar 13 Python
Python扩展内置类型详解
Mar 26 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
Oct 30 Python
【python】matplotlib动态显示详解
Apr 11 Python
python+openCV调用摄像头拍摄和处理图片的实现
Aug 06 Python
python实现图片二值化及灰度处理方式
Dec 07 Python
利用Python脚本实现自动刷网课
Feb 03 Python
python 图像插值 最近邻、双线性、双三次实例
Jul 05 Python
Python Charles抓包配置实现流程图解
Sep 29 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 25 Python
Python字符串拼接六种方法介绍
Dec 18 #Python
Python Socket使用实例
Dec 18 #Python
浅谈python数据类型及类型转换
Dec 18 #Python
Python字典,函数,全局变量代码解析
Dec 18 #Python
Python语言生成水仙花数代码示例
Dec 18 #Python
Python实现的双色球生成功能示例
Dec 18 #Python
Python实现的摇骰子猜大小功能小游戏示例
Dec 18 #Python
You might like
php正则表达式使用的详细介绍
2013/04/27 PHP
JoshChen_web格式编码UTF8-无BOM的小细节分析
2013/08/16 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
javascript学习笔记(十三) js闭包介绍(转)
2012/06/20 Javascript
为jquery的ajaxfileupload增加附加参数的方法
2014/03/04 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
javascript Deferred和递归次数限制实例
2014/10/21 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
2017/06/17 Javascript
react高阶组件经典应用之权限控制详解
2017/09/07 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
Python生成MD5值的两种方法实例分析
2019/04/26 Python
python3 下载网络图片代码实例
2019/08/27 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
实践单位评语
2014/04/26 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
工作推荐信模板
2015/03/25 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
邹越演讲观后感
2015/06/15 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
2016年入党心得体会范文
2016/01/23 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL