Так что я пытался использовать * args и ** kwargs в Python. Но я получаю сообщение об ошибке, что я не могу понять причину.** 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. Но, новый (** б) дает ошибку:
new(**b)
TypeError: new() got an unexpected keyword argument '1'
Может кто-нибудь объяснить это? Я передаю строку как аргумент в обоих случаях, но «a» работает, а «1» - нет.
Переменные не могут быть номера, что означает, что ваши словарные ключи не должны начинаться с одного. – Nicarus
Если вы думаете о том, что 'new (** a)' по существу является новым (a = 7, b = 8, c = 9) ', вы, вероятно, можете выяснить, почему он не работает. – SethMMorton
@Nicarus Здесь есть две проблемы. Это определенно одно, но это не то, что Python хочет поднять как ошибку. – SethMMorton