Python方法的延迟加载的示例代码

作者:wxshi 时间:2022-09-05 03:25:00 

数据挖掘的过程中,数据进行处理是一重要的环节,我们往往会将其封装成一个方法,而有的时候这一个方法可能会被反复调用,每一次都对数据进行处理这将是一个很耗时耗资源的操纵,那么有没有办法将计算后的结果 缓存 起来达到 调用一次,处处运行 的效果,经过一番研究在 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 ,即只调用了一次,也就达到了我们的目的。

来源:http://www.linuxidc.com/Linux/2017-12/149563.htm

标签:Python,方法,延迟加载
0
投稿

猜你喜欢

  • Python WebSocket长连接心跳与短连接的示例

    2022-08-20 04:05:15
  • 数据库安全管理的三个经验分享

    2009-04-01 15:49:00
  • asp.net实现图片以二进制流输出的两种方法

    2023-06-28 21:49:02
  • Python二叉树的镜像转换实现方法示例

    2023-09-28 18:36:35
  • 使用php shell命令合并图片的代码

    2023-06-21 22:34:35
  • Oracle 11g安装错误提示未找到wfmlrsvcapp.ear的解决方法

    2023-07-14 14:31:52
  • 用JavaScript判断字符串长度

    2009-10-29 12:15:00
  • python列表操作之extend和append的区别实例分析

    2023-08-02 15:14:30
  • 如何显示数据库里的图片?

    2010-06-08 09:36:00
  • 让你的空间支持域名绑定子目录的解决办法

    2010-09-15 10:03:00
  • SQL Server数据在不同数据库中的应用

    2008-12-24 15:34:00
  • web开发以HTML为中心

    2008-02-13 08:14:00
  • Python实现按逗号分隔列表的方法

    2023-06-08 08:32:16
  • asp什么情况下用响应缓冲会提高运行速度?

    2010-07-14 21:02:00
  • Win10下Python3.7.3安装教程图解

    2023-09-02 18:16:54
  • python中类的属性和方法介绍

    2023-10-22 05:14:47
  • 带你轻松接触MaxDB和MySQL之间的协同性

    2008-12-03 17:10:00
  • 布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)

    2021-01-02 08:46:49
  • SQL的密码管理的六个危险判断

    2012-01-05 19:07:21
  • 如何在Frontpage中定义CSS样式

    2008-08-02 12:32:00
  • asp之家 网络编程 m.aspxhome.com