def log(text): def decorator(func): def wrapper(*args,**kw): print '%s %s():' %(text,func.__name__) return func(*args,**kw) return wrapper return decorator
decorator就是一個返回函數的高階函數app
log函數,參數text函數
decorator 參數爲func函數spa
wrapper函數 打印text和func函數名日誌
返回func函數code
返回wrapper函數blog
返回decorator函數class
埋日誌di
@log(‘execute’) now(): print ‘now’
執行函數co
now()
結果:execute now():return
now