python允許使用lambda關鍵字創造匿名函式,lambda表示式用於定義匿名函式,它返回可呼叫的函式物件,語法如下:
lambda arg1, arg2, … : expression
例如;
add = lambda a,b=2 : a+bprint(add(3)) #
5print(add(3, 10)) #
13
匿名函式具有比較濃郁的函式式程式設計風格,例如:
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]print filter(lambda x: x % 3 ==0, foo)
print map(lambda x: x % 3 == 0, foo)
使用lambda表示式,可以避免定義函式,從而使得**更簡潔。
python中的函式引數可以帶預設值,這樣能夠降低函式呼叫的複雜度,例如:
def add(a, b, c=100):return a+b+c
print(add(40, 30)) #
170
當函式的引數個數太多,需要簡化時,使用偏函式(functools.partial)可以建立乙個新的函式,這個新函式可以固定住原函式的部分引數,從而在呼叫時更簡單。
from functools importpartial
def add(a, b, c=100):
return a+b+c
plus = partial(add, c=100)
print(plus(40, 30)) #
170print(plus(-20, 30)) #
110
上面的例子中partial(add, c=100)使用了關鍵字引數c=100,如果只是簡單的使用partial(add, 100),那麼100做為位置引數,會被認為是引數a的固定值,。例如:
from functools importpartial
def add(a, b, c=100):
return a+b+c
plus = partial(add, 100)
print(plus(40)) #
240print(plus(40, 50)) # 190
這裡,plus(40),傳入的40會被賦值給b,而c使用預設引數100;
Python 之匿名函式和偏函式
python允許使用lambda關鍵字創造匿名函式,lambda表示式用於定義匿名函式,它返回可呼叫的函式物件,語法如下 lambda arg1,arg2,expression 例如 add lambda a,b 2 a b print add 3 5print add 3,10 13 匿名函式具有...
Python入門 匿名函式與偏函式
python早期沒有匿名函式,但後來出現了lambda表示式,python用lambda表示式充當匿名函式 用法 lambda 引數1,引數2,只能有一行 可寫函式說明 sum lambda arg1,arg2 arg1 arg2 lambda對結果預設return 呼叫sum函式 print 相加...
python 偏函式 python 偏函式
functools.partial可以設定預設引數和關鍵字引數的預設值 python的functools模組提供了很多有用的功能,其中乙個就是偏函式 partial function 要注意,這裡的偏函式和數學意義上的偏函式不一樣。在介紹函式引數的時候,我們講到,通過設定引數的預設值,可以降低函式呼...