Я хочу построить запрос для sunburnt (интерфейс solr) с использованием наследования классов и, следовательно, вместе добавить пары ключ-значение. Интерфейс sunburnt принимает аргументы ключевых слов. Как преобразовать dict ({'type':'Event'})
в аргументы ключевого слова (type='Event')
?
Преобразование Python в kwargs?
Ответ 1
Используйте double-star (aka double-splat?) оператор:
func(**{'type':'Event'})
эквивалентно
func(type='Event')
Ответ 2
**
был бы полезен.
**
оператор распакует элементы dict и, таким образом, **{'type':'Event'}
будет рассматриваться как type='Event'
func(**{'type':'Event'})
совпадает с func(type='Event')
т.е. элементы dict будут преобразованы в keyword arguments
.
FYI
*
распакует элементы списка, и они будут рассматриваться как positional arguments
.
func(*['one', 'two'])
совпадает с func('one', 'two')
Ответ 3
Вот полный пример, показывающий, как использовать оператор **
для передачи значений из словаря в качестве аргументов ключевого слова.
>>> def f(x=2):
... print(x)
...
>>> new_x = {'x': 4}
>>> f() # default value x=2
2
>>> f(x=3) # explicit value x=3
3
>>> f(**new_x) # dictionary value x=4
4