深刻理解python的裝飾器

Python(英語發音:/ˈpaɪθən/), 是一種面向對象、解釋型計算機程序設計語言,由Guido van Rossum於1989年末發明,第一個公開發行版發行於1991年,Python 源代碼一樣遵循 GPL(GNU General Public License)協議。Python語法簡潔而清晰,具備豐富和強大的類庫。它常被暱稱爲膠水語言,可以把用其餘語言製做的各類模塊(尤爲是C/C++)很輕鬆地聯結在一塊兒。常見的一種應用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),而後對其中有特別要求的部分,用更合適的語言改寫,好比3D遊戲中的圖形渲染模塊,性能要求特別高,就能夠用C/C++重寫,然後封裝爲Python能夠調用的擴展類庫。須要注意的是在您使用擴展類庫時可能須要考慮平臺問題,某些可能不提供跨平臺的實現。html

那麼咱們要如何來理解python的裝飾器呢?python

先看個簡單的小例子:web

1編程

2app

3函數

4性能

5ui

6spa

7設計

8

9

10

11

12

13

14

def printB(fn):

    def wrapped():

        return "printB" +fn()+"printb"

    return wrapped

def printLi(fn):

    def wrapped():

        return "printLi" +fn()+"printli"

    return wrapped

@printB

@printLi

def hello():

    return "hello world"

print hello()

#printB  printLi  hello world  printli  printb

這是是個簡單的裝飾器實現,要理解裝飾器首先要理解python中對象的概念,這裏函數就能夠看做是對象,進行賦值等各類操做,你能夠在函數中再去定義函數,把函數當作參數來傳遞。
在裝飾器的高級用法中還能夠在裝飾器函數裏面傳入參數,甚至是缺省參數,更全面的裝飾裝飾器,這種裝飾器的概念相似於AOP編程思想,你理解了多少?

若是想深刻體驗LINUX系統的新手,也能夠先下載一個方德Linux軟件中心試用一下。免費下載地址:http://www.nfs-cloud.cn:81/appCenter/open/softcenter

相關文章
相關標籤/搜索