Python入門 匿名函式與偏函式

2021-10-06 21:14:45 字數 1173 閱讀 8997

python早期沒有匿名函式,但後來出現了lambda表示式,python用lambda表示式充當匿名函式

用法:lambda [引數1,引數2,···]:**(只能有一行**)

# 可寫函式說明

sum=

lambda arg1, arg2: arg1 + arg2 #lambda對結果預設return

# 呼叫sum函式

print

("相加後的值為 : "

,sum(10

,20))

print

("相加後的值為 : "

,sum(20

,20))

執行結果

相加後的值為 :  30

相加後的值為 : 40

需要functools模組,使用其中的partial()函式可以將已有的函式換個預設值賦給其他變數,讓這個變數成為乙個偏函式

使用方法:

#方法一

>>> import functools

>>> int_16 = functools.partial(int, base = 16) #int預設有兩個引數 int(x, base = 10),把字串當成10進製

>>> int_16('123afd') #把字串當成16進製制,然後轉成10進製輸出

1194749

#方法二

>>> from functools import partial

>>> int_16 = partial(int, base = 16)

>>> int_16('abcdef')

11259375

每個變數都存放在棧裡,變數只儲存乙個位址指向堆。

當乙個變數作為函式時,在帶括號時表示呼叫函式,在不帶括號時,表示位址。

def

a(fn)

:return fn(

)defb(

):return4*

4defc(

):return

"hello"

d = a(b)

e = a(c)

print

(d,e)

結果

16 hello

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關鍵字創造匿名函式,lambda表示式用於定義匿名函式,它返回可呼叫的函式物件,語法如下 lambda arg1,arg2,expression 例如 add lambda a,b 2 a b print add 3 5print add 3,10 13 匿名函式具有...

python 偏函式 python 偏函式

functools.partial可以設定預設引數和關鍵字引數的預設值 python的functools模組提供了很多有用的功能,其中乙個就是偏函式 partial function 要注意,這裡的偏函式和數學意義上的偏函式不一樣。在介紹函式引數的時候,我們講到,通過設定引數的預設值,可以降低函式呼...