python中的裝飾器

這篇文章給你們介紹一下python中的裝飾器。在瞭解裝飾器以前,咱們先來了解一下閉包函數。python

  • 內部函數裏引用了外部函數裏定義的對象(不是全局變量),那麼此時內部函數就被稱爲閉包函數
  • 內部函數裏引用了外部函數裏定義的對象(甚至是外層以外,但不是全局變量),那麼此時內部函數就被稱爲閉包函數

下面看一個簡單的閉包例子;閉包

 

 接下來作個小總結,什麼函數能夠被稱爲閉包函數呢?函數

主要知足兩點:一、函數內部定義的函數;spa

       二、引用了外部變量但不是全局變量3d

有了閉包的瞭解,在去理解裝飾器會比較容易一些對象

*python裝飾器本質上就是一個函數,它可讓其餘函數子啊不須要作任何代碼變更的前提下增長額外的功能,裝飾器的返回值也是一個函數對象blog

下面咱們來看一下裝飾器的官方解釋:變量

  • 裝飾器就是對被裝飾的對象(函數、類)進行重構的,其能夠在不改變原來對象的狀況下調用對象時執行重構後的行爲
  • 解決問題:在函數執行以前和執行以後添加功能,調用函數的方式改變了
  • 不改變原有函數的調用方法:函數裏面嵌套函數,而且返回嵌套的函數

下面讓咱們更近一步的看看生成器(全在圖裏)重構

 

 上圖的解釋是多麼的細緻,相信你們必定對生成器有了必定的瞭解,這篇文章就到這裏啦,但願對你們有所幫助。引用

相關文章
相關標籤/搜索