91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python 裝飾器總結

發布時間:2020-06-28 21:22:32 來源:網絡 閱讀:623 作者:121502_hl 欄目:編程語言

裝飾器是高階函數,裝飾器是對傳入函數的功能增強。

 

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


解決方法:

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

 

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

 

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

 

functools模塊

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

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

  2)wrapped被包裝函數、數據源

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

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

  5)增加一個__wrapped__屬性,保留著wrapped函數


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

    1)wrapped被包裝函數、數據源

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

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

    4)增加一個__wrapped__屬性,保留著wrapped函數


3:reduce方法

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


4:partial 方法

偏函數,報函數部分的參數固定下來,相當于為部分的參數添加了為一個固定的默認值,形成一個新的函數并返回。從partial生成的新函數,是對原函數的封裝。


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

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


lru_cache裝飾器應用

1: 使用前提:同樣的函數參數一定得到同樣的結果,函數執行時間很長,且需要多次執行。

2: 本質時函數調用的參數----à返回值

3: 缺點:不支持緩存過期,key無法過期,失效,不支持清除操作,不支持分布式,是一個單機的緩存。

4:使用場景:單機上需要空間換時間的地方,可以使用緩存來將計算變成快速的查詢。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屏东市| 南乐县| 正阳县| 景宁| 吉木乃县| 木兰县| 卓资县| 岳西县| 巴林左旗| 邢台市| 清涧县| 贵港市| 休宁县| 梁河县| 长丰县| 四川省| 安达市| 类乌齐县| 大庆市| 乐至县| 邮箱| 安徽省| 南城县| 嘉鱼县| 古丈县| 泾源县| 福建省| 福鼎市| 资溪县| 阜阳市| 五峰| 大埔区| 旬阳县| 静宁县| 凭祥市| 甘孜县| 平潭县| 突泉县| 苍溪县| 无棣县| 长岭县|