如何发送字典到接受** kwargs的函数?
答
只需使用func(**some_dict)
调用它。
这记录在section 4.7.4 of python tutorial上。
注意,相同dict
是不传递给函数。一个新的副本被创建,所以some_dict is not kwargs
。
+0
_“创建一个新副本”_ - 我在哪里可以找到这种行为的官方文档? – jan 2017-11-10 12:39:41
答
func(**mydict)
,这将意味着kwargs = mydict在函数内部
所有mydict的钥匙必须是字符串
答
这不是100%由你的问题不清楚,但如果你想通过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
我使用后者很多,当我有相同的选项传递给不同的功能,但一些功能只使用一些选项(我希望这是有道理的...)。 但是,当然有一百万种方法可以解决这个问题。如果您对问题有所阐述,我们很可能会更好地帮助您。
答
为Python 3.6刚刚把**字典名称前
def lol(**kwargs):
for i in kwargs:
print(i)
my_dict = {
"s": 1,
"a": 2,
"l": 3
}
lol(**my_dict)
[转换Python的字典来kwargs?]的可能重复(http://stackoverflow.com/questions/5710391/converting-python-dict -to-kwargs) – Olli 2014-02-01 21:02:47