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使用wmi模块获取windows下硬盘信息的方法
May 15 Python
Python的Django框架中settings文件的部署建议
May 30 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
Jun 29 Python
Python在线运行代码助手
Jul 15 Python
python3 shelve模块的详解
Jul 08 Python
django2 快速安装指南分享
Jan 05 Python
python使用xlrd和xlwt读写Excel文件的实例代码
Sep 05 Python
python将.ppm格式图片转换成.jpg格式文件的方法
Oct 27 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
Transpose 数组行列转置的限制方式
Feb 11 Python
使用python采集Excel表中某一格数据
May 14 Python
在Django中使用MQTT的方法
May 10 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 Rename 更改文件、文件夹名称
2011/05/24 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
JQUERY 对象与DOM对象之两者相互间的转换
2009/04/27 Javascript
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
js 函数调用模式小结
2011/12/26 Javascript
javascript学习笔记(十三) js闭包介绍(转)
2012/06/20 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
微信小程序wx.getImageInfo()如何获取图片信息
2018/01/26 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
vue中nextTick用法实例
2019/09/11 Javascript
ionic3双击返回退出应用的方法
2019/09/17 Javascript
Ant-design-vue Table组件customRow属性的使用说明
2020/10/28 Javascript
win7安装python生成随机数代码分享
2013/12/27 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
铁路工务反思材料
2014/02/07 职场文书
主题婚礼策划方案
2014/02/10 职场文书
决心书标准格式
2014/03/11 职场文书
考核工作实施方案
2014/03/30 职场文书
谢师宴答谢词
2015/01/05 职场文书
道歉情书大全
2015/05/12 职场文书
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python