Я хочу построить запрос для 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