偏函數:python
當一個函數有不少參數時,調用者就須要提供多個參數。若是減小參數個數,就能夠簡化調用者的負擔。好比,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:code
#Python學習交流羣:778463939 >>> import functools >>> int2 = functools.partial(int, base=2) >>> int2('1000000') 64 >>> int2('1010101') 85
functools.partial能夠把一個參數多的函數變成一個參數少的新函數,少的參數須要在建立時指定默認值,這樣,新函數調用的難度就下降了。字符串