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 25 Python
使用DataFrame删除行和列的实例讲解
Apr 08 Python
python代码 输入数字使其反向输出的方法
Dec 22 Python
django模板加载静态文件的方法步骤
Mar 01 Python
pytorch 输出中间层特征的实例
Aug 17 Python
pytorch 模型可视化的例子
Aug 17 Python
wxPython实现绘图小例子
Nov 19 Python
python mysql中in参数化说明
Jun 05 Python
在 Python 中使用 MQTT的方法
Aug 18 Python
Python脚本调试工具安装过程
Jan 11 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
Feb 22 Python
pytorch 一行代码查看网络参数总量的实现
May 12 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新手上路(十四)
2006/10/09 PHP
用php将任何格式视频转为flv的代码
2009/09/03 PHP
php面向对象全攻略 (八)重载新的方法
2009/09/30 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
利用JS制作万年历的方法
2017/08/16 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
javascript递归函数定义和用法示例分析
2020/07/22 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
python绘制双柱形图代码实例
2017/12/14 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
Python更换pip源方法过程解析
2020/05/19 Python
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
乌克兰网上服装店:Bolf.ua
2018/10/30 全球购物
工程质量月活动方案
2014/02/19 职场文书
应届生自荐书
2014/06/23 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
python实现进度条的多种实现
2021/04/29 Python
教你使用Pandas直接核算Excel中快递费用
2021/05/12 Python
日本动漫十大公认神作:第五现已全网禁播,《死亡笔记》在榜
2022/03/18 日漫