偏函數(shù):
functools模塊提供很多有用的功能潜必,其中就有偏函數(shù)
tip:int()函數(shù)可提供額外的base參數(shù),
int('12345', base=8)
將字符串轉(zhuǎn)換為8進制數(shù)沃但。
偏函數(shù)的應用場景磁滚,假如要轉(zhuǎn)換大量的二進制字符串,每次都傳入int(x, base=2)非常麻煩宵晚,于是垂攘,我們想到,可以定義一個int2()的函數(shù)淤刃,默認把base=2傳進去:
def int2(x, base=2):
return int(x, base)
functools.partial的作用就是晒他,把一個函數(shù)的某些參數(shù)給固定住(也就是設置默認值)逸贾,返回一個新的函數(shù)陨仅,調(diào)用這個新函數(shù)會更簡單。
>>>import functools>>>int2 = functools.partial(int, base=2)>>>int2('1000000')64>>>int2('1010101')85
小結(jié)
當函數(shù)的參數(shù)個數(shù)太多铝侵,需要簡化時灼伤,使用functools.partial可以創(chuàng)建一個新的函數(shù),這個新函數(shù)可以固定住原函數(shù)的部分參數(shù)咪鲜,從而在調(diào)用時更簡單狐赡。