Python 之匿名函式和偏函式

2021-09-06 20:41:20 字數 1250 閱讀 5130

python允許使用lambda關鍵字創造匿名函式,lambda表示式用於定義匿名函式,它返回可呼叫的函式物件,語法如下:

lambda arg1, arg2, … : expression

例如;

add = lambda a,b=2 : a+b

print(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 import

partial

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 import

partial

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 要注意,這裡的偏函式和數學意義上的偏函式不一樣。在介紹函式引數的時候,我們講到,通過設定引數的預設值,可以降低函式呼...