python之偏函式

2021-09-17 01:37:09 字數 807 閱讀 4723

定義:偏函式的第二個部分(可變引數),按原有函式的引數順序進行補充,引數將作用在原函式上,最後偏函式返回乙個新函式(類似於,裝飾器decorator,對於函式進行二次包裝,產生特殊效果;但又不同於裝飾器,偏函式產生了乙個新函式,而裝飾器,可改變被裝飾函式的函式入口位址也可以不影響原函式)

效果:固定一部分引數,在後續呼叫時只需傳遞少量引數即可。

個人傾向於按照重構函式行為來理解,比如需要3個函式,乙個是x的平反,乙個是x的3次方,乙個是x的四次方,那麼乙個函式將2,3,4當做引數穿進去 ,生成乙個新函式。這樣的話可以把原函式看做函式集合,偏函式才是真正使用的函式具體物件。

舉例01:

from functools import partial

def mod( n, m ):

return n % m

mod_by_100 = partial( mod, 100 )

print mod( 100, 7 ) # 2

print mod_by_100( 7 ) # 2

舉例02:

from functools import partial

bin2dec = partial( int, base=2 )

print bin2dec( '0b10001' ) # 17

print bin2dec( '10001' ) # 17

hex2dec = partial( int, base=16 )

print hex2dec( '0x67' ) # 103

print hex2dec( '67' ) # 103

python 偏函式 python 偏函式

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

Python高階之偏函式

當乙個函式有很多引數時,呼叫者就需要提供多個引數。如果減少引數個數,就可以簡化呼叫者的負擔。比如,int 函式可以把字串轉換為整數,當僅傳入字串時,int 函式預設按十進位制轉換 int 12345 12345但int 函式還提供額外的base引數,預設值為10。如果傳入base引數,就可以做n進製...

Python 之匿名函式和偏函式

python允許使用lambda關鍵字創造匿名函式,lambda表示式用於定義匿名函式,它返回可呼叫的函式物件,語法如下 lambda arg1,arg2,expression 例如 add lambda a,b 2 a b print add 3 5print add 3,10 13 匿名函式具有...