Python方法的延遲加載的示例代碼
數(shù)據(jù)挖掘的過程中,數(shù)據(jù)進行處理是一重要的環(huán)節(jié),我們往往會將其封裝成一個方法,而有的時候這一個方法可能會被反復調(diào)用,每一次都對數(shù)據(jù)進行處理這將是一個很耗時耗資源的操縱,那么有沒有辦法將計算后的結果 緩存 起來達到 調(diào)用一次,處處運行 的效果,經(jīng)過一番研究在 lazy_object_proxy/utils.py 中發(fā)現(xiàn)了一段代碼,詳見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 ,即只調(diào)用了一次,也就達到了我們的目的。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
pycharm利用pyspark遠程連接spark集群的實現(xiàn)
由于工作需要,利用spark完成機器學習。因此需要對spark集群進行操作。所以利用pycharm和pyspark遠程連接spark集群。感興趣的可以了解一下2021-05-05
python實現(xiàn)基于兩張圖片生成圓角圖標效果的方法
這篇文章主要介紹了python實現(xiàn)基于兩張圖片生成圓角圖標效果的方法,實例分析了Python使用pil模塊進行圖片處理的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03
解決Pycharm下面出現(xiàn)No R interpreter defined的問題
今天小編就為大家分享一篇解決Pycharm下面出現(xiàn)No R interpreter defined的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10

