python3的裝飾器
阿新 • • 發佈:2022-05-27
裝飾器的含義:
裝飾器(Decorator):本質上就是一個返回函式的高階函式,其作用是為其他函式新增附加功能,在程式碼執行期間動態增加功能的方式
裝飾器 = 高階函式+巢狀函式+閉包
原則
1、不修改被修飾函式的原始碼
2、不修改被裝飾的函式的呼叫方式
實現方式
我們要得出執行一個函式所花費的時間。
import time def timmer(func): def warpper(*args,**kwargs): #*args,**kwargs 表示可以傳遞任何型別的引數 start_time = time.time() func(*args,**kwargs) #在這裡執行calculate()函式 end_time = time.time() print('執行時間為%s' %(end_time-start_time)) return warpper @timmer #裝飾器放在這裡,表示把函式calculate作為引數傳給了timmer(calculate) def calculate(l): res = 0 for i in l: time.sleep(0.1) res+=i print(res) calculate(range(20))