日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的函数_Python 返回函数+匿名函数

發(fā)布時間:2023/11/30 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的函数_Python 返回函数+匿名函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

返回函數(shù)

粗粗看了一遍學習資料,感覺返回函數(shù)的意思好理解,但是實際應(yīng)用起來就有點麻煩了。

先捋一捋思路叭。

首先,高階函數(shù)除了能接收函數(shù)作為參數(shù)外,也能將函數(shù)作為結(jié)果值返回。

函數(shù)作為返回值

求和

做個簡單的例子:

一般的求和函數(shù)我們會這樣寫:

>>> def calc_sum(*args):

a = 0

for n in args:

a = a + n

return a

>>> calc_sum(1,2,3,4)

10

直接求解,返回結(jié)果。

但是有時候我們不需要立刻求和,可能后面還需要計算,這個時候就要用到返回函數(shù)了。

(當我看到這里的時候,腦子里想的一直都是:為什么不要它立刻求和??)

返回函數(shù)到底又什么作用呢?

就好比做一件事,在做的過程中,返回函數(shù)的作用就是告訴你,我做到哪里/如何了,你能干嘛干嘛了。

暫時沒有更具體的例子,希望以后能遇到,加深一下理解!(太抽象了!!)

好,回過頭再來看看 求和用返回函數(shù)怎么寫。

(不返回求和結(jié)果,而是返回一個求和的函數(shù))

>>> def lazy_sum(*args):

def sum():

a = 0

for n in args:

a = a + n

return a

return sum

>>> f = lazy_sum(1,3,5,7,9)

>>> f

可以看到,當我們調(diào)用

lazy_sum()

時,返回的不是求和結(jié)果,而是求和函數(shù)。

如果要計算真正的求和結(jié)果,就要再調(diào)用f.【 f() 相當于sum() 】

>>> f()

25

內(nèi)部函數(shù)

sum

可以引用外部函數(shù)

lazy_sum

的參數(shù)和局部變量。

lazy_sum

返回函數(shù)

sum

時,相關(guān)參數(shù)和變量都保存在返回的函數(shù)中。(雖然這是一句很好理解的話,但是我莫名感覺它不簡單!

這種程序結(jié)構(gòu),叫做“閉包”(Closure)。(吼!

這里需要注意的是,每次調(diào)用lazy_sum,返回的都是一個新的函數(shù)!

就算傳入?yún)?shù)相同,返回的函數(shù)也不同!

>>> f1 = lazy_sum(1, 3, 5, 7, 9)

>>> f2 = lazy_sum(1, 3, 5, 7, 9)

>>> f1==f2

False

( f1() 和 f2()的調(diào)用結(jié)果互不影響

總結(jié)

以上是生活随笔為你收集整理的python的函数_Python 返回函数+匿名函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。