私は関数の辞書を持っています。これらの関数はすべて1つまたは2つのオプションの引数を使います。私はこの辞書を通して反復し、両方の引数を各反復関数に渡し、2番目の引数を無視するために1つの引数しか必要としない関数を持っています。ただし、このような場合、予期しないキーワード引数エラーが発生します。Python3.4 ** kwargs、予期しないキーワードの引数
def getNumFrames(self, **kwargs):
return len(self.x)
def getConcentration(self, **kwargs):
if ((not gradient) or (not maxX)):
return 0
return (gradient/maxX) * self.x[0]
fields = {'numFrames': getNumFrames, 'concentration': getConcentration}
for field, fieldFunction in fields.items():
for track in tracks:
fieldFunction(object, maxX = 10, gradient = 2)
この例では、getConcentrationは機能しますが、getFramesはmaxXが予期しないキーワードであると言います。
*私の実際のミニマムコードを含めるように私の記事を編集しました。
問題を示す*実際の*最小のサンプルコードを投稿してください。このコードには構文エラーがあります(func2の定義にコロンがありません)。また、関数内で任意の引数を使うことはできません。それらを 'kwargs'辞書から取得する必要があります。最後に、 'object'のように組み込みの名前をシャドーするのは悪い習慣です。 –
2番目のパラメータを省略可能にして、デフォルト値 'None'が機能しないようにしますか? –