python的裝飾器decorator
- 2020 年 1 月 6 日
- 筆記
在python中編程碰到過這樣一件事情,需要給大量的函數做相同的操作,這樣每個函數都去實現一遍這個功能顯然是浪費時間。 #這是一個裝飾器函數 def DecoratorFunc(func): #Function就是對傳入的func函數的包裝,以便加入更多的功能 def Function(): printf('hello world')#簡單的做一些額外操作,可以是其它操作 return func return Function 現在有了裝飾器函數,如何應用到其它函數上呢,用@來使用,如下: @DecoratorFunc def run(): printf('my run function') 上面的函數就應用了DecoratorFunc這個裝飾器的方法,則當我們調用run這個函數的時候,程式的運行是這樣的,它先把run這個函數傳入DecoratorFunc這個函數裡面,然後對其進行簡單的工作後返回結果,如果是上面的寫法的話,最後輸出應該是 hello world my run function 這兩句 這裡只是簡單的例子,裝飾器函數可以做的很豐富 如果像上面的run函數有參數的話,則可以用下面的包裝函數,多了參數而已 def DecoratorFunc(func): #*args表示元祖參數,**kargs表示字典參數 def Function(*args,**kargs): printf('hello world') return func(*args,**kargs) return Function