6
這個函數f接受一個參數列表並返回具有相同參數列表的另一個可調用函數,以便可以對其應用其他函數。這個組合器有一個名字嗎?
from operator import add, mul
def f(*a, **kw):
return lambda g: g(*a, **kw)
map(f(3, 10), (add, mul)) # -> [13, 30]
你叫什麼f
?這是某種組合嗎?
這個函數f接受一個參數列表並返回具有相同參數列表的另一個可調用函數,以便可以對其應用其他函數。這個組合器有一個名字嗎?
from operator import add, mul
def f(*a, **kw):
return lambda g: g(*a, **kw)
map(f(3, 10), (add, mul)) # -> [13, 30]
你叫什麼f
?這是某種組合嗎?
它與partial
密切相關,但不完全相同。
partial
需要一個函數和一些參數並返回一個可調用的函數,該函數使用組合參數調用給定的可調用函數。
def pr(x): print (x) # making it fit for 2.x and 3.x
p = functools.partial(pr, 1, 2, 3)
p() # prints 1, 2, 3
q = f(1, 2, 3)
p(pr) # prints 1, 2, 3
與(可能忽略不計)的差異,可以調用一個「部分」與進一步通過額外的參數。 – glglgl
不,停止...它是不一樣的,我認爲... – glglgl
我已經大幅改寫了這個,以糾正我最初誤解了這個問題。 –