函数参数修复程序

时间:2014-12-25 15:21:19

标签: python

我需要一个可以将其他函数参数修复为常量值的函数。 例如

def a(x, y):
    return x + y

b = fix(a, x=1, y=2)

现在b应该是一个不接收任何参数的函数,每次调用它时返回3。 我非常确定python有类似内置的内容,但我找不到它。

感谢。

2 个答案:

答案 0 :(得分:6)

您可以使用functools.partial

>>> import functools
>>>
>>> def a(x, y):
...     return x + y
...
>>> b = functools.partial(a, x=1, y=2)
>>> b()
3

答案 1 :(得分:4)

您可以使用functools.partial返回新的partial对象。 有效它为您提供相同的功能,但一个或多个参数已用设定值填充。

from functools import partial

def a(x, y):
    return x + y

b = partial(a, x=1, y=2)

print(b())
# 3