我有一個Python函數f(a, b)
,我試圖定義一個新函數g
,其中帶有一個參數f
已經設置,如g(f(a = 5))
。這將是一個簡單的例子:使用默認參數傳遞函數
def sum(a, b):
return a+b
def g(x, f):
return f(x)
而且我希望能夠評估g(5, sum(b=0))
。我怎麼做?
我有一個Python函數f(a, b)
,我試圖定義一個新函數g
,其中帶有一個參數f
已經設置,如g(f(a = 5))
。這將是一個簡單的例子:使用默認參數傳遞函數
def sum(a, b):
return a+b
def g(x, f):
return f(x)
而且我希望能夠評估g(5, sum(b=0))
。我怎麼做?
g(5, partial(sum, b=5))
返回,要求將像FUNC稱爲與位置參數ARGS和關鍵字參數關鍵字當一個新的部分對象。如果更多的參數被提供給該呼叫,它們將附加到參數。如果附加的關鍵字參數被提供,它們延伸並覆蓋關鍵字
局部()被用於部分功能的應用程序,「凍結」的函數的參數和/或關鍵字產生一個新的對象具有簡化一些部簽名。例如,部分()可用於創建行爲等,其中基本參數默認爲兩個INT()函數可以調用的:
basetwo = partial(int, base=2)
非常感謝!精美的作品。 – mirunix 2015-02-06 06:18:55
不知道我下面,什麼是錯用'高清F( x):return g(5,x)'? – amit 2015-02-06 05:59:45
'sum(b = 0)'這是什麼意思?在這種情況下,「a」是什麼? – Marcin 2015-02-06 06:08:35
FWIW,使用'sum'作爲你自己的函數的名字是一個壞主意,因爲已經有一個帶有這個名字的內置函數。 – 2015-02-06 06:56:09