九.Python_裝飾器
阿新 • • 發佈:2018-12-23
Python_裝飾器
import time #匯入時間模組 #18.裝飾器 函式 #作用:不修改目標函式,給目標函式附加不具有的功能 #原則 #不改變目標函式原始碼 #不改變目標函式的呼叫方式 #裝飾器=高階函式+函式巢狀+閉包 #獲取函式執行時間的裝飾器函式 # def timer(func):#獲取函式 # def wrapper(*args,**kwargs): #獲取不定向方法引數 # start_time=time.time()#獲取開始時間 # res=func(*args,**kwargs) #執行函式 # stop_time=time.time()#獲取結束時間 # print("函式執行時間為:%s"%(stop_time-start_time))#輸出花耗時間 # return res#輸出返回值 # return wrapper#將裝飾器函式作為返回值返回給目標函式 #迴圈函式並且在函式前後列印的裝飾器 # def sn(max):#接收@sn的引數 # def sn(fun):#接收函式 # def wraper(*args,**kwargs):#接收函式不定向引數 # res=0 # for i in range(max):#迴圈函式 # print("First.....") # res+=fun(*args,**kwargs) # print("End.......") # return res #返回res接收的函式 # return wraper #返回wraper函式 # return sn #返回_sn函式 #測試函式 # @sn(2)#迴圈兩次cale函式 # @timer#呼叫裝飾器函式 # def cale(l): # res=0 # for i in l: # time.sleep(0.1) # res+=i # return res # # print(cale(range(20)))