返回函式
1. 高階函式除了能夠接收函式作為引數外,還能把函式作為結果返回
2. 例如乙個求和函式,通常情況下的定義以及呼叫:
>>> def sum(*nums):
x=0for n in nums:
x=x+n
return x
>>> sum(1,2,3,4,5)
不返回求和的結果,而是返回求和的函式:
>>> def sum_1(*nums):
def sum_2():
x=0for n in nums:
x=x+n
return x
return sum_2
>>> s=sum_1(1,2,3,4,5)
>>> s#呼叫 sum_1時,返回的是求和函式,而不是求和結果
.sum_2 at 0x000001d998d0c790>
>>> s()#呼叫函式s時,返回的是求和結果
要注意:當呼叫 sum_1 時,即使傳入相同的引數,每次呼叫都會返回乙個新的函式
>>> s1=sum_1(1,2,3)
>>> s2=sum_1(1,2,3)
>>> s1==s2
false
>>> s1()
>>> s2()
3. 閉包函式是能夠讀取其他函式內部變數的函式
例如:>>> def count():
fs=for i in range(1,4):
def f():
return i*i
return fs
>>> f1,f2,f3 = count()
>>> f1()
>>> f2()
>>> f3()
在count函式中,函式 f() 讀取了count函式內部的變數 i ,因此可以把函式 f()看作是閉包函式
但是,每次迴圈,都會建立乙個新的函式,建立後不會立即執行,而是等到迴圈結束後才返回,此時i變成了3,所以結果都是9
要注意:返回函式不要引用任何迴圈變數,或者後續會發生變化的變數
再建立乙個函式:
>>> def count():
def f(j):
def g():
return j*j
return g
fs=for i in range(1,4):
return fs
>>> f1,f2,f3=count()
>>> f1()
>>> f2()
>>> f3()
Python高階篇 python之函式的返回值
返回值簡介 指定返回值與隱含返回值 指定 return 返回值函式舉例 defshowplus x print x returnx 1 num showplus 6 add num 2 print add 輸出結果 隱含 return none 舉例 defshowplus x print x nu...
python返回方法 python 之返回函式
函式作為返回值 高階函式除了可以接受函式作為引數外,還可以把函式作為結果值返回。我們來實現乙個可變引數的求和。通常情況下,求和的函式是這樣定義的 def calc sum args ax 0 for n in args ax ax n return ax 但是,如果不需要立刻求和,而是在後面的 中,...
python返回函式 python中返回函式
python的函式不但可以返回int str list dict等資料型別,還可以返回函式!例如,定義乙個函式 f 我們讓它返回乙個函式 g,可以這樣寫 deff print call f 定義函式g defg print call g 返回函式g return g 仔細觀察上面的函式定義,我們在函...