Ответ 1
Просто используйте func(**some_dict)
для его вызова.
Это описано в в разделе 4.7.4 учебника python.
Обратите внимание, что те же dict
не передаются в функцию. Создается новая копия, поэтому some_dict is not kwargs
.
У меня есть функция, которая принимает параметры ключевого слова:
def func(**kargs):
doA
doB
Как мне отправить словарь?
Просто используйте func(**some_dict)
для его вызова.
Это описано в в разделе 4.7.4 учебника python.
Обратите внимание, что те же dict
не передаются в функцию. Создается новая копия, поэтому some_dict is not kwargs
.
Это не на 100% ясно из вашего вопроса, но если вы хотите передать dict
через kwargs
, вы просто сделаете так, чтобы он определил часть другого dict, например:
my_dict = {} #the dict you want to pass to func
kwargs = {'my_dict': my_dict } #the keyword argument container
func(**kwargs) #calling the function
Затем вы можете поймать my_dict
в функции:
def func(**kwargs):
my_dict = kwargs.get('my_dict')
или...
def func(my_dict, **kwargs):
#reference my_dict directly from here
my_dict['new_key'] = 1234
Я использую последнее много, когда у меня есть тот же набор параметров, передаваемых различным функциям, но некоторые функции используют только некоторые параметры (я надеюсь, что это имеет смысл...). Но есть, конечно, миллион способов сделать это. Если вы немного поработаете над своей проблемой, мы сможем помочь вам лучше.
func(**mydict)
это будет означать kwargs = mydict внутри функции
все ключи mydict должны быть строками
для python 3.6 просто поставьте ** перед именем словаря
def lol(**kwargs):
for i in kwargs:
print(i)
my_dict = {
"s": 1,
"a": 2,
"l": 3
}
lol(**my_dict)