python閉包與裝飾器
一、概念:
1.閉包:
內部函數對外部函數作用域變數的引用
2.裝飾器:
在不影響原有函數的功能,還能添加新的功能
二、閉包詳解:
1.函數內部的函數無法直接調用
函數內的屬性,都是有生命周期,都是在函數執行期間
2.將內部函數return出來,可以供外部函數調用
3.閉包:函數內的閉包函數私有化變數,完成了數據的封裝
4.閉包的作用:可在函數執行過程中保存所需要的值
但大量應用會有記憶體的損耗
三、裝飾器(語法糖)詳解:
1.裝飾器函數的工作流程:
(1)原函數上使用@裝飾器函數實現原函數功能的補充
(2)裝飾器的入參為原函數的對象
(3)裝飾器函數的內部函數返回了原函數的調用
(4)裝飾器函數的返回值為內部函數名
2.裝飾器函數示例:
通過在原函數上myprint@裝飾器函數func1,實現對myprint函數功能的補充
3.裝飾器函數應用擴展
帶參數的裝飾器,裝飾多個函數