python裝飾器學習筆記

什麼是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')
相關文章
相關標籤/搜索