深入理解python的裝飾器
Python(英語發音:/paθn/), 是一種物件導向、解釋型電腦程式設計語言,由Guido van Rossum於1989年底發明,第一個公開發行版發行於1991年,Python 原始碼同樣遵循 GPL(GNU General Public License)協議。Python文法簡潔而清晰,具有豐富和強大的類庫。它常被暱稱為膠水語言,能夠把用其他語言製作的各種模組(尤其是C/C++)很輕鬆地連接在一起。常見的一種應用情形是,使用Python快速產生程式的原型(有時甚至是程式的最終介面),然後對其中有特別要求的部分,用更合適的語言改寫,比如3D遊戲中的圖形渲染模組,效能要求特別高,就可以用C/C++重寫,而後封裝為Python可以調用的擴充類庫。需要注意的是在您使用擴充類庫時可能需要考慮平台問題,某些可能不提供跨平台的實現。 那麼我們要如何來理解python的裝飾器呢? 先看個簡單的小例子:
def printB(fn): def wrapped(): return "printB" +fn()+"printb" return wrappeddef printLi(fn): def wrapped(): return "printLi" +fn()+"printli" return wrapped@printB@printLidef hello(): return "hello world"print hello()#printB printLi hello world printli printb
這是是個簡單的裝飾器實現,要理解裝飾器首先要理解python中對象的概念,這裡函數就可以看作是對象,進行賦值等各種操作,你可以在函數中再去定義函數,把函數當做參數來傳遞。 在裝飾器的進階用法中還可以在裝飾器函數裡面傳入參數,甚至是預設參數,更全面的裝飾裝飾器,這種裝飾器的概念類似於AOP編程思想,你理解了多少? 如果想深入體驗LINUX系統的新手,也可以先下載一個方德Linux軟體中心試用一下。