成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python函數式編程:返回函數與匿名函數

開發 后端
今天的內容包括返回函數和匿名函數。順便說一句,Python真的比R難學啊,對于沒有計算機學科基礎的同學來說,自學Python確實挺頭疼的。


返回函數

所謂返回函數,顧名思義,就是把函數作為返回值。高階函數除了可以將函數作為參數之外,還可以將函數作為結果進行返回。下面來實現一個可變參數的連乘,求積函數可定義為:

def calc_fac(*args):
fx = 0
for n in args:
fx = fx * n
return fx

很多時候當求積函數定義好后我們并不需要立即求積,而是會根據后面的計算再行調用。這時,我們就可以先不返回函數的結果,而是將函數本身返回,如下可見:

def lazy_fac(*args):
def fac():
fx = 0
for n in args:
fx = fx * n
return fx
return fac

重新定義求積函數后,當我們調用lazy_fac()時,返回的就不是求積的結果啦,而是求積函數:

>>> a=lazy_fac(1,2,3,4)
>>> a
<function lazy_fac.<locals>.fac at 0x002a5dr42>

而當調用函數 a 時,求積過程才被執行:

>>> a()
24

此例中,我們在函數lazy_fac中又定義了函數fac,fac可稱做內部函數,而lazy_fac為外部函數。內部函數fac可以引用外部函數的的參數和局部變量。參數和變量都保存在我們最后返回的內部函數fac中。這種程序結構在Python上我們稱之為閉包。

在閉包結構中,函數作為結果返回時,函數過程并沒有被立刻執行,而是等我們調用 a( )后才執行。

總之,在函數式編程里,函數除了可以返回一個計算結果之外,也可以返回一個未執行的函數。當返回函數時,始終牢記該函數并未被執行,返回函數中盡量不要引入循環變量等可能引起變化的變量。

匿名函數

當我們在傳入函數時或者代碼結構過于復雜時,我們可以通過匿名函數來代替顯式的函數定義。此時,匿名函數會大大簡化代碼結構,可以使之更為精煉。

以之前介紹的 map 函數為例來計算 x3 看看匿名函數的功能:

>>> list(map(lambda x: x * x * x, [1, 2, 3]))
[1, 8, 27]

對比可以看出,匿名函數lambda x : x*x*x 就相當于:

def f(x):
return x * x * x

lambda作為匿名函數的關鍵字,冒號前面的 x 表示匿名函數的參數。匿名函數只能有一個表達式,無需像定義函數那樣寫 return。因為匿名函數沒有函數名,在使用過程中就不需要擔心函數名的沖突。匿名函數作為一個函數對象,也符合向變量進行賦值的規則:

>>> fx = lambda x: x * x * x
>>> fx
<function <lambda> at 0x101c6ef28>
>>> f(4)
64

同樣,匿名函數作為一個函數也可以被被當成返回函數:

def f(x):
return lambda: x * x * x
責任編輯:龐桂玉 來源: Python編程學習圈
相關推薦

2023-05-06 07:27:47

2017-06-08 14:25:46

Kotlin函數

2022-11-11 10:23:04

2023-10-07 00:01:02

Java函數

2023-12-14 15:31:43

函數式編程python編程

2021-03-06 10:05:03

Python函數變量

2013-09-09 09:41:34

2025-06-11 08:00:00

LambdaPython函數

2016-10-31 20:46:22

函數式編程Javascript

2011-03-08 15:47:32

函數式編程

2020-09-24 10:57:12

編程函數式前端

2025-03-11 10:00:20

Golang編程函數

2011-08-24 09:13:40

編程

2022-09-22 08:19:26

WebFlux函數式編程

2013-03-04 10:03:17

Python函數式編程

2013-03-05 10:01:29

Python函數式編程

2013-03-04 09:47:08

Python函數式編程

2023-11-01 16:55:27

Golang匿名函數

2023-11-21 07:17:36

Reac函數組件

2020-09-23 07:50:45

Java函數式編程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜精品一区 | 伊人精品国产 | 国产欧美一区二区三区久久手机版 | 亚洲视频在线播放 | 黄色一级网 | 日韩视频一区在线观看 | 欧美无乱码久久久免费午夜一区 | 日韩伦理一区二区 | 久久国产精品免费一区二区三区 | 亚洲国产一区在线 | 91精品国产一区二区三区 | 雨宫琴音一区二区在线 | 久久精品亚洲欧美日韩久久 | 久久黄网 | 日韩欧美在线观看 | 精品久久精品 | 午夜极品| 日韩在线免费电影 | 天天操天天干天天透 | 日日夜夜影院 | 天天色天天 | 一区二区不卡 | 国产一级片免费在线观看 | 综合成人在线 | 水蜜桃久久夜色精品一区 | 婷婷午夜天 | 激情 一区 | 91精品国产一区二区三区 | 午夜精品一区二区三区在线观看 | 国产欧美精品一区二区三区 | 国产成人jvid在线播放 | 99av成人精品国语自产拍 | av资源中文在线 | 久久精品久久久 | www亚洲免费国内精品 | 亚洲精品美女视频 | 日韩国产欧美一区 | 韩日在线 | 久久久久久亚洲精品 | 中文字幕高清免费日韩视频在线 | 国产精品日本一区二区不卡视频 |