Pythonの定義関数は** kwargs--目的を可能にするために単純な用語のパラメータに加えることができる添加可変パラメータのパラメータ名を、として辞書パラメータを渡します。しかし、場合にのみ-あなたが提供しなければならないパラメータ名を。
たとえば次のような状況を示します。
我々は、次の入力を持っています:
それはすべての常識です。しかし、私は辞書納期を使用する場合:
私はそれが一般的なアプローチによって置き換えられ、__init__あまりにもうるさいと思いました:
含む関数はそう__main__の下で定義されています。
しかし、私は目の前にパラメータF1を追加したとき、パラメータ名:
すぐに問題を解決します。
考えます:
私たちの以前のミスの試行では、中に渡されたシンプルな辞書。** kwargsからは提供しますがパラメーターは、辞書機能に変わりはなく、直接辞書にし、それをパラメータとして理解されることはありません。基本的にPythonインタプリタは、私たちの入力がされたと思わパラメータ値として使用する辞書のが、持ち運びなかったパラメータ名、およびPythonの機能メカニズムフロント** kwargsから上に書かれるべき「固定名」パラメータを、私たちは勘違いを渡します「固定名」パラメータは、実際には、私たちの以前の定義は「固定名」パラメータに参加していなかったので、エラーがインクルードが与えられた1つのしかし2位置引数を取ります。
あなたが本当に辞書を渡したい場合はどのようにそれを行うには?この単純な、直接** kwargsからにkwargsからに:
この経験は、** kwargsから特別なパラメータの私の理解を深めました。細部に注意を払うように学習した後!