Python中的裝飾器是你進(jìn)入Python大門的一道坎,不管你跨不跨過去它都在那里。
為什么需要裝飾器
我們假設(shè)你的程序?qū)崿F(xiàn)了say_hello()和say_goodbye()兩個(gè)函數(shù)。
def say_hello(): print "hello!" def say_goodbye(): print "hello!" # bug here if __name__ == '__main__':
say_hello()
say_goodbye()
但是在實(shí)際調(diào)用中,我們發(fā)現(xiàn)程序出錯(cuò)了,上面的代碼打印了兩個(gè)hello。經(jīng)過調(diào)試你發(fā)現(xiàn)是say_goodbye()出錯(cuò)了。老板要求調(diào)用每個(gè)方法前都要記錄進(jìn)入函數(shù)的名稱,比如這樣:
[DEBUG]: Enter say_hello() Hello!
[DEBUG]: Enter say_goodbye() Goodbye!
好,小A是個(gè)畢業(yè)生,他是這樣實(shí)現(xiàn)的。