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入门_浅谈逻辑判断与运算符
May 16 Python
python对excel文档去重及求和的实例
Apr 18 Python
Python3 批量扫描端口的例子
Jul 25 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
Aug 07 Python
Python collections模块使用方法详解
Aug 28 Python
基于python的BP神经网络及异或实现过程解析
Sep 30 Python
Python3实现二叉树的最大深度
Sep 30 Python
python二进制读写及特殊码同步实现详解
Oct 11 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
python实现根据文件格式分类
Oct 31 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
Dec 12 Python
Django高并发负载均衡实现原理详解
Apr 04 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模板安装/制作概述
2007/03/11 PHP
php学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
php检查是否是ajax请求的方法
2015/04/16 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
2016/09/22 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
jQuery Tools Dateinput使用介绍
2012/07/14 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
2013/08/18 Javascript
js判断手机和pc端选择不同执行事件的方法
2015/01/30 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
JavaScript判断按钮被点击的方法
2015/12/13 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
Django基础之Model操作步骤(介绍)
2017/05/27 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
python字典的遍历3种方法详解
2019/08/10 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
python计算n的阶乘的方法代码
2019/10/25 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
如何用 Python 制作 GitHub 消息助手
2021/02/20 Python
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
公司年会演讲稿范文
2014/01/11 职场文书
完美的中文自荐信
2014/05/24 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
工会2014法制宣传日活动总结
2014/11/01 职场文书
公司出纳岗位职责
2015/03/31 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
初三语文教学反思
2016/03/03 职场文书
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
MySQL创建定时任务
2022/01/22 MySQL