高階函式 閉包和裝飾器介紹

2021-10-24 12:00:08 字數 1240 閱讀 5669

其表現形式有兩種,一是以函式(可以乙個或多個)做為引數傳遞,一是以函式做為返回值返回,如下圖

2.匿名函式

用lambda表示式建立一些簡單的函式,它執行完畢後會立刻銷毀

語法:lambda 引數:表示式

如求兩數的乘積

通常與filter配合使用,filter() 是乙個高階函式,需將函式作為引數來傳遞

如列表lst=[1,2,3,4,5,7,9,15,17,18],求列表的偶數

概念:將函式作為引數做返回值返回,稱為高階函式也稱為閉包

好處:只有當前函式可訪問變數,保護資料安全性

特點:1.函式巢狀

2.內部函式必須要引用外部函式的變數

3.將內部函式作為返回值返回

1.裝飾器概念:在不修改原來函式的情況下來對函式進行擴充套件,類似如下圖fn_main稱之為裝飾器

在開發中我們都是通過裝飾器來擴充套件函式的功能

2.裝飾器的使用

@函式名的方式來對其他的函式進行擴充套件

帶引數使用裝飾器的用法如下圖

190401裝飾器 高階函式 閉包

裝飾器本質是函式 為其他函式新增附加功能 不修改被修飾函式的源 不修改被修飾函式的呼叫方式 import time def timmer func start time time.time res func args,kwargs stop time time.time return res tim...

裝飾器 高階函式 閉包 函式巢狀

裝飾器 本質就是函式,作用是給其他函式新增新功能 1 不修改被修飾函式的源 2 不修改被修飾函式的呼叫方法 import time deftimmer func def args,kwargs start time time.time res func args,kwargs end time ti...

函式裝飾器和閉包

裝飾器是可呼叫的物件,其引數是另乙個函式 被裝飾的函式 裝飾器可能會處理被裝飾的函式,然後把它返回,或者將其替換成另乙個函式或可呼叫物件。裝飾器通常把函式替換成另乙個函式 defdeco func definner print running inner return inner deco def ...