裝飾器總結
什么是裝飾器?處理函數的函數,加一個功能,但是不影響原來函數的內部結構生活中的例子:給手機加一個外殼,外殼保護了手機
裝飾器有什么用?增強函數的功能
裝飾器使用場景增加被裝飾函數的行為代碼復用
一個函數接收另一個函數作為參數,這種函數稱之為高階函數。
函數的重要特性
1.在python中,一切皆為對象,所以函數也是一個對象,從而函數可以賦值給變量。
定義一個add函數,函數的功能是實現兩個數相加

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

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

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


4.一個函數可以作為另一個函數的實參。
先來了解一下map函數
map函數是根據指定函數對指定序列做映射,可以有效提高程序運行效率。
看一下map函數的源碼:map(func, *iterables)
map函數接受兩個參數:
func:指定函數函數
iterables:可迭代對象,一個序列或者多個序列,即函數對應的實參


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

弄清楚了裝飾器的工作原理:
- 寫一個高階函數,即參數是函數,返回的也是函數;上面的例子,傳函數 test 作為實參,最后返回函數 test ;
- 在利用語法糖@,簡化賦值操作;
但這樣的代碼是有缺陷:test 函數直接返回了函數名,這樣后面就不好調用了。
改 進:


到此這篇關于python 進階學習之python裝飾器小結的文章就介紹到這了,更多相關python 裝飾器內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 如何正確理解python裝飾器
- Python必備基礎之閉包和裝飾器知識總結
- Python函數裝飾器的使用教程
- python 裝飾器的使用與要點
- python高級語法之閉包和裝飾器詳解
- Python pytest裝飾器總結(實例詳解)
- Python裝飾器的應用場景及實例用法