Pythonでは、単純な関数の場合、引数を何らかの値foo(x, y)
にバインドする方法が少なくとも3つありますy
# defining a nested function:
def foobar(x):
return foo(x, y=yval)
# using lambda
foobar = lambda x: foo(x, y=yval)
# using functools
from functools import partial
foobar = partial(foo, y=yval)
上記のリストが網羅的であるとは思えませんが、どれを使用すればよいのでしょうか? それらはすべて、パフォーマンス、安全性、および名前空間の処理に関して同等ですか? または、各方法に余分なオーバーヘッドと注意事項がありますか? 他のメソッドが既に存在するのに、なぜfunctools
定義する必要があるのでしょうか?partial