私はPythonで* argsと** kwargsを試していました。しかし、私はその理由を理解できないというエラーが出ます。** kwargs in Python
def new(a,b,c):
print a,b,c
a={'a': 7, 'b': 8, 'c': 9}
b={'1':7, '2':8, '3':9}
new(**a)
new(**b)
新しい(** a)は、期待どおりの結果、つまりキー7,8,9を印刷します。 しかし、新しいは(** b)はエラーを与える:
new(**b)
TypeError: new() got an unexpected keyword argument '1'
誰もがこれを説明してもらえますか?どちらの場合でも文字列を引数として渡していますが、 'a'の作品と '1'はありません。
変数をすることはできません数字は、あなたの辞書のキーが1で始まらないことを意味します。 – Nicarus
'new(** a)'が本質的に 'new(a = 7、b = 8、c = 9) 'という事実を考えるなら、おそらくそれがうまくいかない理由を理解できます。 – SethMMorton
@Nicarusここには2つの問題があります。それは間違いなく1つですが、それはPythonがエラーとして提起するものではありません。 – SethMMorton