Примечание: Это не дубликат из linked answer, что основное внимание уделяется вопросам, связанным с исполнением, а также то, что происходит за кулисами, когда вызов функции ДИКТ() производится. Мой вопрос состоит в том, что аргументы ключевых слов всегда приводят к ключам типа string
. Определенно не дубликат.Will dict (** kwargs) всегда дает словарь, где Keys имеют строку типа?
Метод-1:
suit_values = {'spades':3, 'hearts':2, 'diamonds':1, 'clubs':0}
Метод-2:
suit_values = dict(spades=3, hearts=2, diamonds=1, clubs=0)
Метод-1 имеет смысл для меня. Это как сказать python, чтобы дать мне словарь, где клавиши являются строками и значениями являются численные. Но в методе-2, как питон знает, что ключи - это строки, а не что-то еще?
Это тренд? если да, то некоторые другие примеры (кроме словарей), которые показывают это своеобразное поведение?
EDIT-1:
Мое понимание из ответов:
- Метод-2 является
dict(**kwargs)
способ создания словаря. - В
spades=3
,spades
является допустимым идентификатором Python, поэтому берется как ключ типаstring
.
Таким образом, будет dict(**kwargs)
всегда результат в словаре, где ключи типа string
?
EDIT-2: ^^ ДА.
Я действительно не получил «И аргументы ключевого слова могут передаваться только с параметрами». – Somjit
@Somjit Хммм, я немного отредактировал. Надеюсь, теперь это ясно. – thefourtheye
Хорошо. В этом есть смысл. Таким образом, аргументы ключевого слова могут передаваться только как строки. Но после того, как они пройдены, они также «поглощаются» как строки, т. Е. Хранятся как объекты типа строки? Мое редактирование задает этот вопрос в конце. – Somjit