Я пытаюсь реализовать функцию, которая получает значения и устанавливает эти значения в новые значения словаря.
data = {}
def setValue(**kwargs):
for key, value in kwargs.items():
data[key] = value
Эта функция хорошо работает для строк без пробелов.
setValue(Hello = 3)
# {'Hello': 3}
Но когда я попытался установить значение ключевой строки с пробелом, например «Hello World», возникла SyntaxError.
setValue(Hello World = 3) # SyntaxError: invalid syntax
setValue("Hello World" = 3) # SyntaxError: keyword can't be an expression
Как передать строку с пробелами в качестве аргумента ключевого слова?
Вы можете передать dict аргументов ключевого слова.
k = {'Hello World': 3}
setValue(**k)
How to pass a string having whitespace characters as a keyword argument?
Это невозможно, поскольку переменные (и, следовательно, аргументы ключевых слов) не могут иметь пробелов в Python.
Источник: https://docs.python.org/3/reference/lexical_analysis.html#идентификаторы
Вы можете использовать символы подчеркивания:
setValue(Hello_World=3)
Или передайте kwargs как дикт:
setValue(**{'Hello World': 3})
Будет ли вместо этого использование
Hello_World
приемлемой реализацией?