加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Python技巧的延迟加载

发布时间:2021-11-13 11:36:54 所属栏目:PHP教程 来源:互联网
导读:数据挖掘的过程中,数据进行处理是一重要的环节,我们往往会将其封装成一个方法,而有的时候这一个方法可能会被反复调用,每一次都对数据进行处理这将是一个很耗时耗资源的操纵,那么有没有办法将计算后的结果缓存起来达到调用一次,处处运行的效果,经过一

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

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读