python 進階學習之python裝飾器小結

裝飾器總結

什麼是裝飾器?處理函數的函數,加一個功能,但是不影響原來函數的內部結構生活中的例子:給手機加一個外殼,外殼保護瞭手機

裝飾器有什麼用?增強函數的功能

裝飾器使用場景增加被裝飾函數的行為代碼復用

一個函數接收另一個函數作為參數,這種函數稱之為高階函數。

函數的重要特性

1.在python中,一切皆為對象,所以函數也是一個對象,從而函數可以賦值給變量。

定義一個add函數,函數的功能是實現兩個數相加

系統為函數分配瞭一個內存地址:0x00000000021B3798

2.一個函數可以作為另一個函數的返回值

3.一個函數可以嵌套定義在另一個函數中

4.一個函數可以作為另一個函數的實參。

先來瞭解一下map函數
map函數是根據指定函數對指定序列做映射,可以有效提高程序運行效率。

看一下map函數的源碼:map(func, *iterables)

map函數接受兩個參數:

func:指定函數函數
iterables:可迭代對象,一個序列或者多個序列,即函數對應的實參

裝飾器

想要實現一個功能,在不改變 test 函數內部結構的前提下,在前面加一句 “少壯不努力”

弄清楚瞭裝飾器的工作原理:

  • 寫一個高階函數,即參數是函數,返回的也是函數;上面的例子,傳函數 test 作為實參,最後返回函數 test ;
  • 在利用語法糖@,簡化賦值操作;

但這樣的代碼是有缺陷:test 函數直接返回瞭函數名,這樣後面就不好調用瞭。

改 進:

到此這篇關於python 進階學習之python裝飾器小結的文章就介紹到這瞭,更多相關python 裝飾器內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: