Python基礎 高階 返回函式

2021-08-13 09:20:41 字數 1404 閱讀 4269

帶返回結果的函式

示例

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

# python 返回函式

# 求和,返回值

defsum

(x, y):

return x + y

print(sum(1,2))

執行結果

d:\pythonproject>python run.py

3

延遲返回結果的函式

示例

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

# python 返回函式

# 懶載入-求和

deflazy_sum

(x, y):

defsum

():return x+y

return sum

# 呼叫lazy_sum()時,返回的並不是求和結果,而是求和函式

f = lazy_sum(1,2)

# 呼叫函式f時,才真正計算求和

print(f())

執行結果

d:\pythonproject>python run.py

sumat

0x03c38870>

3

我們在函式lazy_sum中又定義了函式sum,並且,內部函式sum可以引用外部函式lazy_sum的引數和區域性變數,當lazy_sum返回函式sum時,相關引數和變數都儲存在返回的函式中,這種稱為「閉包

上述 每次呼叫都會返回乙個新的函式,即使傳入相同的引數

示例

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

# python 返回函式

# 懶載入-求和

deflazy_sum

(x, y):

defsum

():return x+y

return sum

# 呼叫lazy_sum()時,返回的並不是求和結果,而是求和函式

print(lazy_sum(1,2))

f1 = lazy_sum(1,2)

print(f1())

f2 = lazy_sum(1,2)

print(f2())

# 每次呼叫都會返回乙個新的函式,即使傳入相同的引數

# 所以返回是false

print(f1 == f2)

結果

d:\pythonproject>python run.py

0x04128870>33

false

python 高階函式 返回函式

此文參考自廖雪峰python 何為高階函式?高階函式英文叫higher order function。把函式作為引數傳入,這樣的函式稱為高階函式,函式式程式設計就是指這種高度抽象的程式設計正規化。高階函式除了可以接受函式作為引數外,還可以把函式作為結果值返回。乙個函式可以返回乙個計算結果,也可以返回...

Python基礎 高階函式之返回函式(二)

既然函式是乙個變數,那麼當然可以把函式作為結果值返回。先簡單看乙個示例 首先我們定義乙個函式實現可變引數之積 from functools import reduce def fac args return reduce lambda x,y x y,args fac 1,2,3,4,5 120但是...

python基礎 返回函式

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