int 函數能夠把字符串轉化爲整數,當僅僅傳入字符串時,int()函數默認按照十進制轉換:python
print int("12345") #12345
int函數還提供額外的base參數,默認值爲10,若是傳入base參數,能夠作N進制的轉換函數
print int("12345",base=8) #5349 print int("12345",16) #74565
假設要轉換大量的二進制字符串,每次都傳入int(x, base=2)很是麻煩,因而,咱們想到,能夠定義一個int2()的函數,默認把base=2傳進去spa
def int2(x,base=2): return int(x,base) print int2("10000000") #128 print int2("1010101") #85
經過設定參數的默認值,能夠下降函數調用的難度。而偏函數也能夠作到這一點,functools模塊提供了不少有用的功能,其中一個就是偏函數
functools.partial就是幫助咱們建立一個偏函數的,不須要咱們本身定義int2(),能夠直接使用下面的代碼建立一個新的函數int2:對象
import functools int2=functools.partial(int,base=2) print int2("10000000") #128 print int2("1010101") #85
functools.partial的做用就是,把一個函數的某些參數給固定住(也就是設置默認值),返回一個新的函數,調用這個新函數會更簡單。blog
上面的新的int2函數,僅僅是把base參數從新設定默認值爲2,但也能夠在函數調用時傳入其餘值:字符串
print int2('1000000', base=10) #1000000
當建立偏函數時,能夠接受函數對象、*args、**kw這三個參數class
int2 = functools.partial(int, base=2) 實際上固定了int函數的關鍵字參數base,也就是import
int2("10010") 至關於:
kw={base:2}
int{'10010',**kw}二進制
當傳入:im
max2=functools.partial(max,2)
實際上會把10做爲*args的一部分自動加到左邊,也就是:
max2(5,6,7)
至關於
args=(10,5,6,7)
max(*args)
轉自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143184474383175eeea92a8b0439fab7b392a8a32f8fa000