functools.partial偏函數的使用


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,然后返回一個新的函數對象。然后就調用該對象即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM