Преобразование Python в kwargs?

Я хочу построить запрос для sunburnt (интерфейс solr) с использованием наследования классов и, следовательно, вместе добавить пары ключ-значение. Интерфейс sunburnt принимает аргументы ключевых слов. Как преобразовать dict ({'type':'Event'}) в аргументы ключевого слова (type='Event')?

Ответ 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