python基礎教程:偏函數

偏函數: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能夠把一個參數多的函數變成一個參數少的新函數,少的參數須要在建立時指定默認值,這樣,新函數調用的難度就下降了。字符串

相關文章
相關標籤/搜索