1

假设我有一个函数def foo(A, B)

现在我有另一个函数bar(func),其中func是一个只接受一个变量的函数。我想传入fooas func,但第二个变量B始终固定为 300。我该怎么做?

4

2 回答 2

3

您使用lambda

bar(lambda x: foo(x,300))

基本上,

func = lambda x: x*x

或多或少等同于:

def func(x):
   return x*x

所以在这种情况下,我们使用的东西或多或少等同于:

def new_func(x):
    return foo(x,300)

然后我们传递等价的new_functo bar

于 2013-02-21T04:20:10.773 回答
2

Lambda 是最简单的,但您也可以将 functools.partial 用于更复杂的情况:

import functools

bar(functools.partial(foo, B=300))
于 2013-02-21T04:21:37.600 回答