使用默认参数传入函数

时间:2015-02-06 05:57:13

标签: python

我在Python f(a, b)中有一个函数,我正在尝试定义一个新函数g,它接收f已经设置了一个参数,类似于g(f(a = 5))。这将是一个简单的例子:

def sum(a, b):
   return a+b

def g(x, f):
   return f(x)

我希望能够评估g(5, sum(b=0))。我该怎么做?

1 个答案:

答案 0 :(得分:6)

使用functools.partial

g(5, partial(sum, b=5))
  

返回一个新的部分对象,当调用它时,其行为类似于使用位置参数 args 和关键字参数关键字调用的func。如果为调用提供了更多参数,则它们附加到args。如果提供了其他关键字参数,则扩展和覆盖关键字

     

partial()用于部分函数应用程序,它“冻结”函数参数和/或关键字的某些部分,从而产生具有简化签名的新对象。例如,partial()可用于创建一个callable,其行为类似于int()函数,其中base参数默认为2:

basetwo = partial(int, base=2)