Try   HackMD

匿名函式 Lambda

lambda為python語言中的匿名函式,
是邏輯相對簡單的function,
可理解為 只處理一件事情的def

無參數

有命名的函式 def

將def取名為"hi",要用的時候呼叫他的名字

def hi(): print("hi") hi() hi() hi()

修改為 lambda

hi = lambda: print("hi") hi()

無參數

這裡改寫為匿名函式的方法,
你可能會想說,诶奇怪,哪裡有匿名?這個不是也命名為"hi"嗎?

是這樣子的,匿名函式是被指派到"hi"變數中,
而要使用時則是用變數hi()來呼叫這個匿名函式。

當然也可以不指派給任何變數,這樣子使用:

(lambda: print("hi"))()

亂七八糟的括號

上面的括號怎麼亂七八糟的?
最後一個括號看似沒有任何用途,但拿掉卻又不能用?
眼睛都要花了

小括號()是用來呼叫函式、傳入引數(argument)的地方

就像hi() 後面的括號一樣,
把lambda視為一個函式,就可以理解了。

接收參數的兩數字相加函式

接收參數的 def

def add(x,y): # 參數 parameter return x+y print(add(5,555)) # 引數 argument

接收參數的 lambda

add = lambda x, y: x + y # 參數 parameter print(add(5,555)) # 引數 argument

一個參數時

多個參數時(參數1、參數2)

參數(parameter) VS 引數(argument)

參數跟引數也常拿來比較,
參數是在function接受帶入值時使用的 (被動),
引數則是在呼叫function時要傳遞進去的 (主動)。

如上面兩個程式碼。