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操作Word批量生成文章的方法
Jul 28 Python
Python numpy 点数组去重的实例
Apr 18 Python
python检测主机的连通性并记录到文件的实例
Jun 21 Python
Pandas Shift函数的基础入门学习笔记
Nov 16 Python
Django中使用Celery的方法示例
Nov 29 Python
Django 拆分model和view的实现方法
Aug 16 Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
Jun 08 Python
通过自学python能找到工作吗
Jun 21 Python
python实现npy格式文件转换为txt文件操作
Jul 01 Python
使用python把xmind转换成excel测试用例的实现代码
Oct 12 Python
Python 中面向接口编程
May 20 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调用mysql存储过程
2007/02/14 PHP
PHP在字符串中查找指定字符串并删除的代码
2008/10/02 PHP
jquery判断元素的子元素是否存在的示例代码
2014/02/04 Javascript
JQuery弹出层示例可自定义
2014/05/19 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
jquery实现tab键进行选择后enter键触发click行为
2017/03/29 jQuery
JavaScript生成简单等差数列
2017/11/28 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
node.js利用socket.io实现多人在线匹配联机五子棋
2018/05/31 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
2018/12/11 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
Python发送Email方法实例
2014/08/21 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
Python简单生成随机姓名的方法示例
2017/12/27 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
canvas实现按住鼠标移动绘制出轨迹的示例代码
2018/02/05 HTML / CSS
求高于平均分的学生学号及成绩
2016/09/01 面试题
班级聚会策划书
2014/01/16 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
全国文明单位申报材料
2014/05/31 职场文书
敬老院标语
2014/06/27 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
办公室主任个人总结
2015/02/28 职场文书
2015入党自荐书范文
2015/03/05 职场文书
学校运动会开幕词
2016/03/03 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript