函式視為物件
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天的想法,
很抱歉講得很淺