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...