2015年4月23日 星期四

[Python] Decorator 用法

Python 有一個很特殊語法,是可以在Function中可以定義Function,用法如下

def function1():
    print "execute function1"

    def inner_function1():
        print "execute inner_function1"

而基於這個方法,可在搭配Decorator,做出類似Callback Function

def callback(user_func):
    def _callback(*args, **kwargs):
        print '''執行預先處理 '''
     
        # 執行使用者函數
        return user_func(*args, **kwargs)
    return _callback

1. 一般呼叫方式

def cb(x):
    print "計算 x+x"
    return x+x

result = callback(cb)
print result(5)

輸出結果 :
執行預先處理
計算 x+x
10

2. 使用 Decorator @ --> 是Python語言的特殊字,稱之Decorator ,用法如下
@callback
def cb(x):
    print "計算 x+x"
    return x+x

print cb(5)

Reference : 
[1][python] decorator 之很難理解的快速理解法

沒有留言:

張貼留言