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 ljust rjust center输出
Sep 06 Python
python使用pyhook监控键盘并实现切换歌曲的功能
Jul 18 Python
Python FTP两个文件夹间的同步实例代码
May 25 Python
python给微信好友定时推送消息的示例
Feb 20 Python
Python字符串内置函数功能与用法总结
Apr 16 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
May 27 Python
使用python模拟命令行终端的示例
Aug 13 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
Python中zip()函数的简单用法举例
Sep 02 Python
python3的UnicodeDecodeError解决方法
Dec 20 Python
解决windows下python3使用multiprocessing.Pool出现的问题
Apr 08 Python
Python爬虫实战之爬取携程评论
Jun 02 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数据库安装图文教程)
2010/04/28 PHP
php is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
在网页中控制wmplayer播放器
2006/07/01 Javascript
用javascript实现页面打印的三种方法
2007/03/05 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
canvas绘制环形进度条
2017/02/23 Javascript
详解vue嵌套路由-params传递参数
2017/05/23 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
node-red File读取好保存实例讲解
2019/09/11 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
简洁的十分钟Python入门教程
2015/04/03 Python
Python的gevent框架的入门教程
2015/04/29 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
python简单区块链模拟详解
2019/07/03 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
作为网站管理者应当如何防范XSS
2014/08/16 面试题
高分子材料与工程专业推荐信
2013/12/01 职场文书
庆祝教师节活动方案
2014/01/31 职场文书
大学专科求职信
2014/07/02 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis