我想使用partial()
来构建一个只接收一个参数的函数,
这样我就可以将其传递给一些高阶函数(例如:map()
/filter()
):
>>> from operator import sub
>>> from functools import partial
>>> map(lambda x:sub(x, 5), [1,2,3])
[-4, -3, -2]
>>> help(sub)
Help on built-in function sub in module operator:
sub(...)
sub(a, b) -- Same as a - b.
>>> map(partial(sub, b=5), [1,2,3])
TypeError: sub() takes no keyword arguments
有没有办法使
sub()
(或任何其他内置函数)支持关键字参数?
functools.partial()
包装器了。 - Martijn Pieters