python裝飾器

之前一直不明白裝飾器是個什麼東西?


裝飾器是Python語言中的高級語法。主要的功能是對一個函數、方法、或者類進行加工,作用是爲已經存在的對象添加額外的功能,提升代碼的可讀性。
裝飾器是設計模式的一種,被用於有切面需求的場景,較爲經典的有插入日誌、性能測試、事務處理等。


上面一段話可能作爲我這樣的新手不太理解,那我就用通俗點的語言把我的理解告訴大家;


比如你現在寫了一萬個遊戲打怪升級的方法,現在產品需求突然要求在打怪升級之前必須裝備一把大刀,那你就要在這一萬個打怪升級的方法前添加裝備大刀的代碼,好不容易添好代碼後,產品需求又變了,打怪升級前不要裝備大刀了,需要裝備一把大劍,那麼好了,你又得把一萬個方法的裝備大刀的步驟改成裝備大劍;以此類推如此反覆的修改,工作量大大增加,裝飾器就派上用場了。


再說白一點:裝飾器就是在某個方法執行前或執行後所要額外執行的功能


看如下栗子:

#encoding:utf-8
#!/usr/bin/env python

def zhuangshi(fun):#定義裝飾器
    def wrapper():
        #print '裝備大刀' #如需裝備大刀就去掉註釋
        fun()
        #print '卸下大刀' #如需裝備大刀就去掉註釋
    return wrapper

@zhuangshi
def func1():
    print '打怪升級1'
@zhuangshi
def func2():
    print '打怪升級2'
@zhuangshi
def func3():
    print '打怪升級3'

if __name__ == '__main__':
    func1()
    func2()
    func3()


可以複製代碼實際運行下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章