什麼是python裝飾器?
python
裝飾器其實也就是一個函數,一個用來包裝函數的函數,返回一個修改以後的函數對象,將其從新賦值原來的標識符,並永久喪失對原始函數對象的訪問。app
eg:當須要在Func1和Func2中加同樣的功能時,能夠在outer中添加一次就能夠完成所有函數的添加。裝飾器與函數創建鏈接的方式是在函數的前一行用@+裝飾器名稱來完成。而且在裝飾器中必定要返回被裝飾的對象ide
def outer(fun): def wrapper(): print '驗證' fun() print 'zhuangshiq' return wrapper#必定要返回裝飾器的對象 @outer #裝飾器與函數創建鏈接 def Func1(): print 'func1' @outer def Func2(): print 'func2' Func1() Func2()
裝飾器參數:函數
若函數中有接受的參數,則必須在裝飾器中添加一個參數。而且在裝飾器內部的函數調用中也要添加函數調用。spa
def outer(fun): def wrapper(arg):#arg爲形參 print '驗證' print arg fun(arg) print 'zhuangshiq' return wrapper @outer #裝飾器與函數創建鏈接 def Func1(arg): print 'func1',arg @outer def Func2(arg): print 'func2',arg Func1('a') Func2('a')