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 相关文章推荐
17个Python小技巧分享
Jan 23 Python
Python导出数据到Excel可读取的CSV文件的方法
May 12 Python
高效测试用例组织算法pairwise之Python实现方法
Jul 19 Python
Python中Threading用法详解
Dec 27 Python
使用pandas中的DataFrame数据绘制柱状图的方法
Apr 10 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
May 10 Python
自适应线性神经网络Adaline的python实现详解
Sep 30 Python
pygame实现俄罗斯方块游戏(基础篇2)
Oct 29 Python
Python基于BeautifulSoup爬取京东商品信息
Jun 01 Python
Python 流媒体播放器的实现(基于VLC)
Apr 28 Python
PyTorch 如何自动计算梯度
May 23 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针对字符串开头和结尾的判断方法
2016/07/11 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
一些常用的Javascript函数
2006/12/22 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
js字符编码函数区别分析
2011/12/28 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
IE 下Enter提交表单存在重复提交问题的解决方法
2014/05/04 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
2015/01/09 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
2019/02/21 Javascript
vue跳转页面的几种方法(推荐)
2020/03/26 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
[02:48]DOTA2英雄基础教程 暗夜魔王
2013/12/12 DOTA
python的常用模块之collections模块详解
2018/12/06 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
使用Filter过滤python中的日志输出的实现方法
2019/07/17 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
详解Python在使用JSON时需要注意的编码问题
2019/12/06 Python
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
Carmen Sol官网:购买果冻鞋、手袋和配件
2021/01/01 全球购物
大学生在校学习的自我评价
2014/02/18 职场文书
意向书范本
2014/07/29 职场文书
2014年保密工作总结
2014/11/22 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
利用Python实现Picgo图床工具
2021/11/23 Python