python裝飾器學習筆記

什麼是python裝飾器?

    裝飾器其實也就是一個函數,一個用來包裝函數的函數,返回一個修改之後的函數對象,將其重新賦值原來的標識符,並永久喪失對原始函數對象的訪問。

  eg:當需要在Func1和Func2中加一樣的功能時,可以在outer中添加一次就可以完成全部函數的添加。裝飾器與函數建立連接的方式是在函數的前一行用@+裝飾器名稱來完成。並且在裝飾器中一定要返回被裝飾的對象

def outer(fun):
    def wrapper():
        print '驗證'
        fun()
        print 'zhuangshiq'
    return wrapper#一定要返回裝飾器的對象
    
@outer   #裝飾器與函數建立連接
def Func1():
    print 'func1'
@outer
def Func2():
    print 'func2'
    
Func1()
Func2()

裝飾器參數:

    若函數中有接受的參數,則必須在裝飾器中添加一個參數。並且在裝飾器內部的函數調用中也要添加函數調用。

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')


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章