Python裝飾器示例

  曾經有這麼一個需求,想要將程序中跑的整個process友好地顯示出來,這樣子後來者在看log的時候,就可以很清楚地知道程序source code中function的調用邏輯,方便理解。在接觸到裝飾器以前,覺得想要達到這樣的目的,就須要在每一個function的開始和結束的部分加上相應的code,如今裝飾器幫忙解決了這個問題。

#裝飾器有許多方法,但最簡單和最容易理解的方法是編寫一個函數,返回封裝原始函數調用的一個子函數

#此處,原始函數爲func,子函數爲result,最終的裝飾器就是decorator

def decorator(func):
    def result(*args, **dic):
        print "Function --- %s is start" %func.__name__
        res = func(*args, **dic)
        print "Function --- %s is end" %func.__name__
        return res
    return result
    
@decorator
def test():
    print "This is test"


test()

########  輸出結果  ########

Function --- test is start
This is test
Function --- test is end
相關文章
相關標籤/搜索