関数があるとしますdef foo(A, B)。
ここで、別の関数があります。bar(func)ここで、funcは1つの変数のみを受け取る関数です。fooとして渡したいのですfuncが、2番目の変数Bは常に300に固定されています。どうすればよいですか?
あなたが使用する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ます。
Lambdaが最も簡単ですが、より複雑なケースにはfunctools.partialを使用することもできます。
import functools
bar(functools.partial(foo, B=300))