Python中的裝飾器是你進入Python大門的一道坎,不管你跨不跨過去它都在那里。

為什么需要裝飾器

我們假設(shè)你的程序?qū)崿F(xiàn)了say_hello()和say_goodbye()兩個函數(shù)。

def say_hello(): print "hello!" def say_goodbye(): print "hello!" # bug here if __name__ == '__main__':
    say_hello()
    say_goodbye()

但是在實際調(diào)用中,我們發(fā)現(xiàn)程序出錯了,上面的代碼打印了兩個hello。經(jīng)過調(diào)試你發(fā)現(xiàn)是say_goodbye()出錯了。老板要求調(diào)用每個方法前都要記錄進入函數(shù)的名稱,比如這樣:

[DEBUG]: Enter say_hello() Hello!
[DEBUG]: Enter say_goodbye() Goodbye!

好,小A是個畢業(yè)生,他是這樣實現(xiàn)的。