位置引数を任意の順序で部分的に設定することを定義したいとします。つまり、2番目と3番目の引数を修正するstr.splitに部分的に適用したいとします。望ましい結果は次のとおりです。
lambda s: str.rsplit(s, SEP, 1) # SEP given.
(私はポイントをより明確にするためstr.rsplit(s...
に代わりに使用します)。s.rsplit(...
functools.partialを使用した近似は次のとおりです。
partial(str.rsplit, sep=SEP, maxsplit=1) # SEP given
ただし、str.rsplitはキーワード引数を使用せず、位置のみを使用します。
それらの引数を部分的に修正する方法は?ラムダとラッパーの唯一の選択肢はありますか?
関数をインラインで定義する場合、たとえば関数を求める引数に対して関数を定義する場合のように、ラッパーは醜いです。ここではラムダが事実であり、パーシャルは他のオプションですが、この場合は不足しているようです。