1 #帶參數以及返回值的函數裝飾器,上一篇博客記錄了無參數函數裝飾器寫法以及使用方案,當函數有參數以及返回值時需要將裝飾器進行如下修稿 2 def timer(fun): 3 def deco(*args,**kwargs): #被裝飾函數實際是執行deco,所以在此將被裝飾函數參數進行傳遞 4 start_time = time.time() 5 res = fun(*args,**kwargs) #將被裝飾函數的返回值接收 6 stop_time = time.time() 7 return res #返回被裝飾函數的返回值 8 return deco 9 10 @timer #被裝飾函數帶參數以及有顯式返回值 11 def add(x, y): 12 time.sleep(1) 13 print("this is add func") 14 return x+y 15 16 print(add(1, 2))