如何让python内置函数支持关键字参数?

var*_*wey 5 python functional-programming

我想用它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
Run Code Online (Sandbox Code Playgroud)

有没有办法让sub()(或任何其他内置函数)支持关键字参数?

Ign*_*ams 2

如果 C 中定义的函数不采用关键字参数,则无法强制它这样做。lamdba要么以困难的方式使用并填充参数,要么将函数包装在可以接受关键字参数的 Python 函数中。