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代码真的很爽
Aug 26 Python
利用python打开摄像头及颜色检测方法
Aug 03 Python
python pygame实现2048游戏
Nov 20 Python
Python3字符串encode与decode的讲解
Apr 02 Python
python利用selenium进行浏览器爬虫
Apr 25 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
Jul 07 Python
Django错误:TypeError at / 'bool' object is not callable解决
Aug 16 Python
python实现输出一个序列的所有子序列示例
Nov 18 Python
通过python实现windows桌面截图代码实例
Jan 17 Python
4行Python代码生成图像验证码(2种)
Apr 07 Python
linux系统下pip升级报错的解决方法
Jan 31 Python
用Python将库打包发布到pypi
Apr 13 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中文分词的简单实现代码分享
2011/07/17 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
js键盘事件的keyCode
2014/07/29 Javascript
javascript实现禁止右键和F12查看源代码
2014/12/26 Javascript
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
javascript鼠标滑动评分控件完整实例
2015/05/13 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
javascript常用的设计模式
2017/02/09 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
基于iview的router常用控制方式
2019/05/30 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
英国曼彻斯特宠物用品品牌:Bunty Pet Products
2019/07/27 全球购物
九年级语文教学反思
2014/02/04 职场文书
创业计划书如何编写
2014/02/06 职场文书
小学语文国培感言
2014/03/04 职场文书
幼儿教师演讲稿
2014/05/06 职场文书
好人好事演讲稿
2014/09/01 职场文书
先进个人主要事迹怎么写
2015/11/04 职场文书
详解mysql三值逻辑与NULL
2021/05/19 MySQL
如何在python中实现ECDSA你知道吗
2021/11/23 Python
mysql性能优化以及配置连接参数设置
2022/05/06 MySQL