1. 程式人生 > 實用技巧 >Python3 裝飾器理解與使用、帶引數的裝飾器

Python3 裝飾器理解與使用、帶引數的裝飾器

Python裝飾器(英文decorator)
裝飾器的本質也是函式 為其他函式新增附加功能。
裝飾器的存在其實就是為了在需要新增新功能時不影響之前版本的使用的同時來增加新功能,即實現原函式無侵入的增加拓展功能,其實也是一種“偷懶”的辦法。它的使用場景較多,比如:插入日誌、效能測試、事務處理、快取、許可權校驗等場景。有了裝飾器,我們就可以抽離出大量與函式功能本身無關的雷同程式碼並繼續重用。

Python裝飾器的兩大原則
(1)在不修改被修飾函式原始碼的同時為其增加功能
(2)不修改被裝飾的函式的呼叫方式

裝飾器的使用:
參考這篇部落格:https://blog.csdn.net/xiangxianghehe/article/details/77170585?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

import time

裝飾器

def decorator(func): # func為裝飾器繫結的方法(繫結裝飾器後自動傳入)
def Deco(arg1, **kwargs): # (傳入非固定引數)這樣即使裝飾函式不帶引數也可被裝飾 如果沒有引數也可以寫成空,如果固定引數也可以寫成固定的
# Deco() 或者 Deco(x),下面的func響應變更