Ответ 1
В сообщении об ошибке говорится, что get
не принимает аргументы ключевого слова, но вы предоставляете default=0
converted_comments[submission.id] = converted_comments.get(submission.id, 0)
Я новичок в Python, и я пытаюсь в основном создать хеш-таблицу, которая проверяет, указывает ли ключ на значение в таблице, а если нет, инициализирует его пустым массивом. Оскорбительной частью моего кода является строка:
converted_comments[submission.id] = converted_comments.get(submission.id, default=0)
Я получаю сообщение об ошибке:
TypeError: get() takes no keyword arguments
Но в документации (и различных частях кода примера) я вижу, что она принимает аргумент по умолчанию:
https://docs.python.org/2/library/stdtypes.html#dict.get http://www.tutorialspoint.com/python/dictionary_get.htm
Ниже приведен синтаксис метода get():
dict.get(key, default = None)
В Stack нет ничего об этом, поэтому я предполагаю, что это ошибка начинающего?
В сообщении об ошибке говорится, что get
не принимает аргументы ключевого слова, но вы предоставляете default=0
converted_comments[submission.id] = converted_comments.get(submission.id, 0)
В связи с тем, как разрабатывались API-интерфейсы уровня Python, многие встроенные функции и методы фактически не имеют имен для своих аргументов. Даже если документация вызывает аргумент default
, функция не распознает имя default
как ссылающийся на необязательный второй аргумент. Вы должны указать аргумент позитивно:
>>> d = {1: 2}
>>> d.get(0, default=0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: get() takes no keyword arguments
>>> d.get(0, 0)
0