2012年3月21日 星期三

python decorator 把函數當成物件做處理

python decorator 可稱為描述器
當我們有函數時 想要修改函數的功能 最直接的方式就是以修飾該函數的實作程式碼
但往往如此做非常費工夫 所以有了decorator的觀念
如果們將函數視為物件 將它傳入decorator修飾,並返回一個函數




decorator:修飾函數的函數




def decof1(inputf):
    return lambda:str(inputf()) + " :decorated" # decorator must return a function
    
@decof1
def f1():
    return 1
def f2():
    return 2




#It is equivalent to operate this statement => ' f1 = decof1(f1) '
print (f1()) # decof1(f1)

沒有留言:

張貼留言