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

6 投票
1 回答
572 浏览
提问于 2025-04-18 08:01

我想用 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()(或者其他内置函数)支持关键字参数呢?

1 个回答

2

如果在C语言中定义的一个函数不支持关键字参数,那么就没办法强制它支持。你可以选择使用lambda表达式,手动填写参数,或者把这个函数放在一个可以接受关键字参数的Python函数里面。

撰写回答