python 返回函式

2022-07-08 02:45:08 字數 1386 閱讀 7964

返回函式

1.  高階函式除了能夠接收函式作為引數外,還能把函式作為結果返回

2.  例如乙個求和函式,通常情況下的定義以及呼叫:

>>> def sum(*nums):

x=0for n in nums:

x=x+n

return x

>>> sum(1,2,3,4,5)

15

不返回求和的結果,而是返回求和的函式:

>>> 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時,返回的是求和結果

15

要注意:當呼叫 sum_1 時,即使傳入相同的引數,每次呼叫都會返回乙個新的函式

>>> s1=sum_1(1,2,3)

>>> s2=sum_1(1,2,3)

>>> s1==s2

false

>>> s1()

6>>> s2()

6

3.  閉包函式是能夠讀取其他函式內部變數的函式

例如:

>>> def count():

fs=for i in range(1,4):

def f():

return i*i

return fs

>>> f1,f2,f3 = count()

>>> f1()

9>>> f2()

9>>> f3()

9

在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()

1>>> f2()

4>>> f3()

9

python返回函式 python中返回函式

python的函式不但可以返回int str list dict等資料型別,還可以返回函式!例如,定義乙個函式 f 我們讓它返回乙個函式 g,可以這樣寫 deff print call f 定義函式g defg print call g 返回函式g return g 仔細觀察上面的函式定義,我們在函...

python返回 python 返回函式

返回函式 1.高階函式除了能夠接收函式作為引數外,還能把函式作為結果返回 2.例如乙個求和函式,通常情況下的定義以及呼叫 def sum nums x 0for n in nums x x n return x sum 1,2,3,4,5 不返回求和的結果,而是返回求和的函式 def sum 1 n...

python 返回函式

返回函式 python的函式不但可以返回int str list dict等資料型別,還可以返回函式!例如,定義乙個函式 f 我們讓它返回乙個函式 g,可以這樣寫 deff print call f 定義函式g defg print call g 返回函式g return g仔細觀察上面的函式定義,...