真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python裝飾器總結(jié)-創(chuàng)新互聯(lián)

裝飾器是高階函數(shù),裝飾器是對(duì)傳入函數(shù)的功能增強(qiáng)。

成都創(chuàng)新互聯(lián)公司專注于安平企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城系統(tǒng)網(wǎng)站開發(fā)。安平網(wǎng)站建設(shè)公司,為安平等地區(qū)提供建站服務(wù)。全流程定制開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

裝飾器的副作用:原函數(shù)對(duì)象的屬性都被替換了,而使用了裝飾器,查看到的函數(shù)對(duì)象屬性就變成裝飾器的函數(shù)對(duì)象了,如果需要查被裝飾的函數(shù)的屬性?對(duì)用原函數(shù)的屬性覆蓋掉裝飾器的屬性。

解決方法:

通過copy_properties函數(shù)將被包裝函數(shù)的屬性覆蓋掉包裝函數(shù),凡是被裝飾的函數(shù)都需要更改函數(shù)的屬性,可以將復(fù)制屬性的函數(shù)做成裝飾器函數(shù)。做成通用函數(shù)。

裝飾器分為無參裝飾器和帶參裝飾器。

帶參裝飾器,是一個(gè)函數(shù),函數(shù)作為他的形參,返回值是一個(gè)不帶參的裝飾器函數(shù),使用@functionname(參數(shù)列表)方式調(diào)用,可以看做在裝飾器外層又加一層函數(shù)。

functools模塊

1:functools.update_wrapper(wrapper,warpped,assigned =WRAPPER_ASSIGNMENTS,updated = WRAPPER_UPDATES)類似copy_properties功能。

 1)Wrapper 包裝函數(shù),被更新者,

 2)wrapped被包裝函數(shù)、數(shù)據(jù)源

 3)元組WRAPPER_ASSIGNMENTS中是要被覆蓋的屬性‘__module__’,’__name__’,’__qualname__’,’__annotations__’,模塊名,名稱,限定名,文檔,參數(shù)注解。

 4)元組WRAPPER_UPDATES中是要被更新的屬性,__dict__屬性字典

 5)增加一個(gè)__wrapped__屬性,保留著wrapped函數(shù)

2:functools.wraps(warpped,assigned=WRAPPER_ASSIGNMENTS,updated= WRAPPER_UPDATES)類似copy_properties功能。

  1)wrapped被包裝函數(shù)、數(shù)據(jù)源

  2)元組WRAPPER_ASSIGNMENTS中是要被覆蓋的屬性‘__module__’,’__name__’,’__qualname__’,’__annotations__’,模塊名,名稱,限定名,文檔,參數(shù)注解。

  3)元組WRAPPER_UPDATES中是要被更新的屬性,__dict__屬性字典

  4)增加一個(gè)__wrapped__屬性,保留著wrapped函數(shù)

3:reduce方法

refuce方法,可迭代對(duì)象不能位空:初始值沒提供就在可迭代對(duì)象中取一個(gè)元素。

4:partial 方法

偏函數(shù),報(bào)函數(shù)部分的參數(shù)固定下來,相當(dāng)于為部分的參數(shù)添加了為一個(gè)固定的默認(rèn)值,形成一個(gè)新的函數(shù)并返回。從partial生成的新函數(shù),是對(duì)原函數(shù)的封裝。

5:@dunctools.lur_cache(maxsize = 128,typed = false)

least-recently-used裝飾器,如果maxsize設(shè)置為None,則禁用LRU功能,并且緩存可以無線增長(zhǎng)。當(dāng)maxsize是二的冪時(shí),lru功能執(zhí)行的最好。如果typed設(shè)置為Ture,則不同類型的函數(shù)參數(shù)將單獨(dú)緩存。

lru_cache裝飾器應(yīng)用

1: 使用前提:同樣的函數(shù)參數(shù)一定得到同樣的結(jié)果,函數(shù)執(zhí)行時(shí)間很長(zhǎng),且需要多次執(zhí)行。

2: 本質(zhì)時(shí)函數(shù)調(diào)用的參數(shù)----à返回值

3: 缺點(diǎn):不支持緩存過期,key無法過期,失效,不支持清除操作,不支持分布式,是一個(gè)單機(jī)的緩存。

4:使用場(chǎng)景:?jiǎn)螜C(jī)上需要空間換時(shí)間的地方,可以使用緩存來將計(jì)算變成快速的查詢。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


本文題目:Python裝飾器總結(jié)-創(chuàng)新互聯(lián)
本文路徑:http://weahome.cn/article/jieoc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部