偏函式:
當一個函式有很多引數時,呼叫者就需要提供多個引數,如果減少引數個數,就可以簡化呼叫者的負擔,比如,int()函式可以把字串轉換為整數,當僅傳入字串時,int()函式默認按十進制轉換,但int()函式還提供額外的base引數,默認值為10,如果傳入base引數,就可以做 N 進制的轉換:
>>> int('12345', base=8)
5349
>>> int('12345', 16)
74565
假設要轉換大量的二進制字串,每次都傳入int(x, base=2)非常麻煩,于是,我們想到,可以自定義一個int2()的函式,默認把base=2傳進去:
def int2(x, base=2):
return int(x, base)
但是有更簡單的方法嗎?functools.partial就是幫助我們創建一個偏函式的,不需要我們自己定義int2(),可以直接使用下面的代碼創建一個新的函式int2:
#Python學習交流群:778463939
>>> import functools
>>> int2 = functools.partial(int, base=2)
>>> int2('1000000')
64
>>> int2('1010101')
85
functools.partial可以把一個引數多的函式變成一個引數少的新函式,少的引數需要在創建時指定默認值,這樣,新函式呼叫的難度就降低了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/247965.html
標籤:其他
