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 相关文章推荐
django开发教程之利用缓存文件进行页面缓存的方法
Nov 10 Python
python os用法总结
Jun 08 Python
Python多进程原理与用法分析
Aug 21 Python
python3利用ctypes传入一个字符串类型的列表方法
Feb 12 Python
Python玩转Excel的读写改实例
Feb 22 Python
对PyQt5中树结构的实现方法详解
Jun 17 Python
Python实现AI换脸功能
Apr 10 Python
python数据类型强制转换实例详解
Jun 22 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
Jun 29 Python
利用python对mysql表做全局模糊搜索并分页实例
Jul 12 Python
python中pathlib模块的基本用法与总结
Aug 17 Python
Python爬虫后获取重定向url的两种方法
Jan 19 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
解析dedecms空间迁移步骤详解
2013/05/15 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
PHP+JS三级菜单联动菜单实现方法
2016/02/24 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
CI(CodeIgniter)框架实现图片上传的方法
2017/03/24 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
JS二维数组的定义说明
2014/03/03 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
基于JS模仿windows文件按名称排序效果
2016/06/29 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
用python代码做configure文件
2014/07/20 Python
python清除字符串里非字母字符的方法
2015/07/02 Python
Python argv用法详解
2016/01/08 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
Python如何快速实现分布式任务
2017/07/06 Python
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
Python定时发送天气预报邮件代码实例
2019/09/09 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
使用CSS3和Checkbox实现JQuery的一些效果
2015/08/03 HTML / CSS
HTML5各种头部meta标签的功能(推荐)
2017/03/13 HTML / CSS
公司行政经理岗位职责
2013/12/24 职场文书
双创工作实施方案
2014/03/26 职场文书
我的中国梦演讲稿高中篇
2014/08/19 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android
Python数据可视化之Seaborn的安装及使用
2022/04/19 Python