関数があるとします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))