帶返回結果的函式
示例
#!/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 但是,如果不需要立刻求和,而是在後面的 中,根據需要再計算怎...