python 减少可调用对象的参数个数
生活随笔
收集整理的這篇文章主要介紹了
python 减少可调用对象的参数个数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有一個被其他python 代碼使用的callable 對象,可能是一個回調函數或者是一個處理器,但是它的參數太多了,導致調用時出錯
如果需要減少某個函數的參數個數, 你可以使用functools.partial() 。partial() 函數允許你給一個或多個參數設置固定的值,減少接下來被調用時的參數個數。為了演示清楚,假設你有下面這樣的函數:
def spam(a, b, c, d): print(a, b, c, d)現在我們使用partial() 函數來固定某些參數值:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' >>> from functools import partial >>> s1 = partial(spam, 1) # a = 1 >>> s1(2, 3, 4) 1 2 3 4 >>> s1(4, 5, 6) 1 4 5 6 >>> s2 = partial(spam, d=42) # d = 42 >>> s2(1, 2, 3) 1 2 3 42 >>> s2(4, 5, 5) 4 5 5 42 >>> s3 = partial(spam, 1, 2, d=42) # a = 1, b = 2, d = 42 >>> s3(3) 1 2 3 42 >>> s3(4) 1 2 4 42 >>> s3(5) 1 2 5 42 >>>可以看出partial() 固定某些參數并返回一個新的callable 對象。這個新的callable接受未賦值的參數,然后跟之前已經賦值過的參數合并起來,最后將所有參數傳遞給原始函數。
總結
以上是生活随笔為你收集整理的python 减少可调用对象的参数个数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python ‘%r‘或者‘{!r}‘的
- 下一篇: python 用lambda表达式代替简