Python 函式式程式設計 02 返回函式 匿名函式

2021-08-21 09:21:58 字數 938 閱讀 6465

1)函式作為返回值

# 定義函式

>>> def then_sum(*args):

... def cal_sum():

... sum=0

...for n in args:

... sum=sum+n

...return sum

...return cal_sum

...# 呼叫函式

>>> f=then_sum(1,2,3,4)

>>> f

# 返回求和函式

# 呼叫函式f,實現求和

>>> f()

10

2)閉包

在上面**中,我們在函式then_sum中又定義了函式cal_sum,並且,內部函式cal_sum可以引用外部函式then_sum的引數和區域性變數,當then_sum返回函式cal_sum時,相關引數和變數都儲存在返回的函式中,這種稱為「閉包(closure)」的程式結構擁有極大的威力。

注意:

示例

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

[1, 4, 9, 16]

關鍵字lambda表示匿名函式,冒號前面的x表示函式的引數。

>>> nf=lambda x: x*x

>>> nf

lambda> at 0x104a4ef28>

>>> nf(5)

25

>>> def myfunc(x,y):

...return lambda: x*x+y*y

...>>> myfunc(3,4)

>>> myfunc(3,4)()

25

Python 函式式程式設計 返回函式

高階函式除了可以接受函式作為引數外,還可以把函式作為結果值返回。我們來實現乙個可變引數的求和。通常情況下,求和的函式是這樣定義的 defcalc sum args ax 0for n in args ax ax n return ax 但是,如果不需要立刻求和,而是在後面的 中,根據需要再計算怎麼辦...

python之函式式程式設計 返回函式

1.返回函式 正常情況下當我們定義乙個函式後,需要return來返回函式。這裡邊我們簡單介紹一下返回的區別,仔細觀察下邊的兩個定義,乙個返回的是函式,乙個是具體的函式值。def myabs return abs 返回函式 defmyabs2 x return abs x 返回函式呼叫的結果,返回值是...

Python函式式程式設計簡介(二)返回函式

本文為python函式式程式設計的第二部分主要講解返回函式和閉包 2 返回函式 2.1 函式作為返回值 高階函式除了可以接受函式作為引數外,還可以把函式作為結果值返回。我們來實現乙個可變引數的求和。通常情況下,求和的函式是這樣定義的 def calc sum args ax 0 for n in a...