网络编程
位置:首页>> 网络编程>> Python编程>> Python方法的延迟加载的示例代码

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

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

标签:Python,方法,延迟加载

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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com