python 偏函式應用

2021-06-21 14:42:47 字數 1233 閱讀 4764

摘要:python的設計核心原則就是簡潔——在這種原則的指導下,誕生了lambda表示式和偏函式:二者都讓函式呼叫變得簡潔。本文主要為你介紹偏函式的應用。

如果我們定義了乙個函式,比如說將四個數相加add(one ,two,three,four),上層有很多函式需要呼叫這個函式。在這些呼叫中,80%的呼叫傳遞的引數都是one=1,two=20,如果我們每都輸入相同的引數,這樣乏味而且浪費,固然,我們可以通過預設引數來解決這個問題;但是如果另外我們也需要引數是one=2,two=10的情況呢?所以,我們需要一種函式,能夠將任意數量的引數的函式轉化成帶剩餘引數的函式物件。

通過上面,我們大概明白了什麼是偏函式:簡單的說,偏函式就是某一種函式帶有固定引數的實現,所以,我們需要:1)給偏函式命名 2)傳遞固定引數

看下面這個例子:

>>> from  operator import add,mul

>>> from functools import partial

>>> add1=partial(add,1)

>>> add(2,4)

6>>> add(1,2)3

可能你還沒有感受到偏函式的巨大威力,這裡舉出乙個常見的應用場景。在gui程式中,乙個控制項往往有很多引數:大小、長度、最大尺寸、前景色、背景色等;而我們大量用到同種控制項,此時,偏函式就非常有用了。下面給出乙個gui應用的例子和結果:

Python偏函式應用

currying 的概念將函式式程式設計的概念和預設引數以及可變引數結合在一起。乙個帶n 個引數,curried 的函式固化第乙個引數為固定引數,並返回另乙個帶n 1 個引數函式物件,分別類似於lisp的原始函式car 和cdr 的行為。currying 能泛化成為偏函式應用 pfa 這種函式將任意...

python偏函式應用

python的functools模組提供了很多有用的功能,其中乙個就是偏函式 partial function 要注意,這裡的偏函式和數學意義上的偏函式不一樣。在介紹函式引數的時候,我們講到,通過設定引數的預設值,可以降低函式呼叫的難度。而偏函式也可以做到這一點。舉例如下 int 函式可以把字串轉換...

python 偏函式 python 偏函式

functools.partial可以設定預設引數和關鍵字引數的預設值 python的functools模組提供了很多有用的功能,其中乙個就是偏函式 partial function 要注意,這裡的偏函式和數學意義上的偏函式不一樣。在介紹函式引數的時候,我們講到,通過設定引數的預設值,可以降低函式呼...