1. 程式人生 > >python 試題:請描述decorator(裝飾器)的用法和它的應用場景,如果可以的話,寫一個decorator

python 試題:請描述decorator(裝飾器)的用法和它的應用場景,如果可以的話,寫一個decorator

請描述decorator(裝飾器)的用法和它的應用場景,如果可以的話,寫一個decorator


參考答案:

所謂裝飾器就是把函式包裝一下,為函式新增一些附加功能,裝飾器就是一個函式,引數為被包裝的函式,返回包裝後的函式:

def d(fp):
    def _d(*arg, **karg):
        print "do sth before fp.."
        r= fp(*arg, **karg)
        print "do sth after fp.."
        return r
    return _d
 
@d
def f():
    print "call f"
#上面使用@d來表示裝飾器和下面是一個意思
#f = d(f)
 
 
f()#呼叫f