Python で、f
いくつかの 2 次引数を使用して渡したい関数があるとします (簡単にするために、最初の引数だけが変数のままであると仮定します)。
これら2つの方法の違いは何ですか(もしあれば)?
# Assume secondary_args and secondary_kwargs have been defined
import functools
g1 = functools.partial(f, *secondary_args, **secondary_kwargs)
g2 = lambda x: f(x, *secondary_args, **secondary_kwargs)
たとえば、のドキュメント ページにpartial
は、次の引用があります。
partial
クラスで定義されたオブジェクトは静的メソッドのように動作し、インスタンス属性のルックアップ中にバインドされたメソッドに変換されません。
クラスに提供された引数からクラスメソッドを作成するために使用された場合、ラムダメソッドはこれに悩まされますか(コンストラクターまたは後で関数を介して)?