假设我有一个函数def foo(A, B)
。
现在我有另一个函数bar(func)
,其中func
是一个只接受一个变量的函数。我希望将foo
作为func
传递,但第二个变量B
始终固定为300.我该怎么做?
答案 0 :(得分: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_func
传递给bar
。
答案 1 :(得分:2)
Lambda是最简单的,但您也可以使用functools.partial来处理更复杂的情况:
import functools
bar(functools.partial(foo, B=300))