https://docs.python.org/3.6/library/functools.html
從名字可以看出,該函數的作用就是部分使用某個函數,即凍結住某個函數的某些參數,讓它們保證為某個值,並生成一個可調用的新函數對象,這樣你就能夠直接調用該新對象,並且僅用使用很少的參數
該參數源碼:
def partial(func, *args, **keywords): def newfunc(*fargs, **fkeywords): newkeywords = keywords.copy() newkeywords.update(fkeywords) return func(*args, *fargs, **newkeywords) newfunc.func = func newfunc.args = args newfunc.keywords = keywords return newfunc
舉個簡單例子:
>>> from functools import partial >>> baseTwo = partial(int, base=2) #實現將二進制字符串轉成int整型 >>> baseTwo('10010') 18
>>> int('10010')
10010
等價於:
>>> int('10010', base=2) 18
這里實現的就是部分使用int()函數,一般來說我們使用int()函數是將10進制的字符串轉為整型
如果我們想要讓其實現將2進制的字符串轉為整型,就是傳入參數base=2,但是不想每次運行的時候都要傳入該參數base,做法就是使用partial凍結其base參數值為2,然后返回一個新的函數對象。然后就調用該對象即可