1. ホーム
  2. python

[解決済み】予期しないキーワード引数TypeErrorが発生するのはなぜですか?

2022-02-21 04:41:19

質問

を使ったコードをテストしています。 *args**kwargs を書きました。 dictionary に対して **kwargs . なぜか

def func(*args, **kwargs):
    if args:
        second_test(*args)
    elif kwargs:
        second_test(**kwargs)

def second_test(stringa, integera, floata):
    print("Name: %s, Problems Correct: %d, Points: %f" % (stringa, integera, floata))

profile_1 = ["David", 21, 132.00]
func(*profile_1)

profile_1a = {'Name': 'David', 'Problems Correct': 21, 'Points': 132.00}
func(**profile_1a)

から始まるコードです。 line 44 で終了し line 57 . これは私が得ているエラーです。

TypeError: second_test() got an unexpected keyword argument 'Name'

予期せぬキーワード引数でググったのですが、定義が見つかりません。 私のコードのどこがおかしいのでしょうか?

どうすればいいですか?

を渡すと kwargs を関数に渡す場合、リストの中から正確な変数名を見つけることを期待します。もし、あなたの辞書のキーが stringa , integera および floata であれば、問題なく動作するはずです。

そこであなたは 関数の変数名を変更する必要があります。 または 辞書のキー名を変更する。