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中删除文件的程序代码
Mar 13 Python
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
Python编程中对super函数的正确理解和用法解析
Jul 02 Python
python中将函数赋值给变量时需要注意的一些问题
Aug 18 Python
pyhton列表转换为数组的实例
Apr 04 Python
Django实现auth模块下的登录注册与注销功能
Oct 10 Python
Python求平面内点到直线距离的实现
Jan 19 Python
Python如何把Spark数据写入ElasticSearch
Apr 18 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 Python
TensorFlow中如何确定张量的形状实例
Jun 23 Python
python如何绘制疫情图
Sep 16 Python
Python之基础函数案例详解
Aug 30 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
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
php实现微信分享朋友链接功能
2019/02/18 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
js window.event对象详尽解析
2009/02/17 Javascript
30个最佳jQuery Lightbox效果插件分享
2011/04/11 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
JS实现字符串转驼峰格式的方法
2016/12/16 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
Vue.js中extend选项和delimiters选项的比较
2017/07/17 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
python为tornado添加recaptcha验证码功能
2014/02/26 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
python 实现二维列表转置
2019/12/02 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
Python之字典对象的几种创建方法
2020/09/30 Python
Python远程linux执行命令实现
2020/11/11 Python
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
经贸韩语专业大学生职业规划
2014/02/14 职场文书
《商鞅南门立木》教学反思
2014/02/16 职场文书
大堂副理的岗位职责范文
2014/02/17 职场文书
校园文化标语
2014/06/18 职场文书
小王子读书笔记
2015/06/29 职场文书
妇产科护理心得体会
2016/01/22 职场文书
90条交通安全宣传标语
2019/10/12 职场文书
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
Pytorch反向传播中的细节-计算梯度时的默认累加操作
2021/06/05 Python
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js
Golang 结构体数据集合
2022/04/22 Golang