iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
自我挑戰組

Python淺顯易懂的小教室系列 第 29

[Day_29]函式與遞迴_(8)

函式視為物件

Python中函式視為物件,以函式名稱當作物件,函式名稱加上()才會執行該函式,範例如下。

def add(a,b):
    return a+b
def run(func,x,y):
    return func(x,y)
k = run(add,10,20)
print('k=',k)

函式run的第1個參數func為函式物件,使用func()呼叫執行func所指定的函式,run函式以「run(add,10,20)」執行,則func會使用函式物件add取代,run函式中的func(x,y)相當於add(x,y),可以看出Python把函式當成物件使用,上述程式執行結果如下。

#output
k= 30

函式lambda

函式若只有一行,可以轉換成函式lambda,函式lambda的轉換格式如下。

lambda 輸入的參數:函式的定義

我們可以將函式add轉換成函式lambda,如下。

#原始函式
def add(a,b):
    return a+b

#轉換為lambda
lambda a,b:a+b

函式run的第一個參數func為函式物件,使用func()呼叫執行func所指定的函式,run函式已「run(lambda a,b:a+b,10,20)」執行,則func會使用函式lambda所定義的函式取代,函式run內的func(x,y)相當於函式lambda以x與y為輸入參數,上述程式執行結果如下。

#input
def run(func,x,y):
    return func(x,y)
k = run(lambda a,b:a+b,10,20)
print('k=',k)

#output
k= 30

以上是今天的介紹,
也應該是我這個挑戰的最後一天介紹了,
明天我想寫一些自己這30天的想法,
很抱歉講得很淺
/images/emoticon/emoticon02.gif


上一篇
[Day_28]函式與遞迴_(7)
下一篇
[Day_30]不要貪心
系列文
Python淺顯易懂的小教室30

尚未有邦友留言

立即登入留言