0
私はこのような関数ラッパーを持っています。名前付きのオプションの引数と複数の引数の順序
def funcWrapper(fn_ng, order=None, *args):
def clsr(X):
if order is not None:
X = calc_poli_dsX(X, order)
return fn_ng(X, *args);
return clsr;
私は以下のように、この機能を使用する場合は、:
mGrdnt = funcWrapper(gd.squared_error, dsX1, dy, order=None)
mGrdnt = funcWrapper(gd.squared_error, dsX1, dy)
私は
TypeError: funcWrapper() got multiple values for keyword argument 'order'
のエラーは私の推測では、私は、funcWrapper 'のため' を指定しない場合は、ということでした持っています'dsX1'と 'dy'は* argとして渡されますが、そうでないことが判明しました。私はオプションの引数を指定しても、 'dsX1'と 'dy'はすべてオプションの引数という名前の 'order'に入っているようです。
オプションの引数が指定されているか、または指定されていないときに、dsX1とdyを* argに渡すことができる関数ラッパーを作成するにはどうすればよいですか?
にあなたの答えをありがとう。私はいつも注文に従わなければならないようです。 funcWrapper(gd.squared_error、[dsX1、dy])が好きなら、[dsX1、dy]はオプションになり、うまくいきません。 funcWrapper(gd.squared_error、* arr)を実行すると、dsX1はオプションになります... – noclew