扩展字典:通过直通函数传递关键字args不起作用

时间:2019-05-23 10:02:40

标签: python kwargs

我正在尝试使用

扩展字典
  

dict(existing,** kwargs)

但是当 kwargs 通过另一个函数来时,这不起作用。 有人可以帮我理解为什么会这样吗?

示例测试代码:

def funct(*args, **kwargs):
    a = {'a': 1, 'b': 2}
    print kwargs
    return dict(a, **kwargs)

def thrgh(*v, **var):
    print var
    funct(*v, **var)

if __name__ == '__main__':
    print 'hello world'
    print funct(c=3)
    print 'helloWorld-thrg'
    print thrgh(c=3)

输出

hello world
{'c': 3}
{'a': 1, 'c': 3, 'b': 2}
helloWorld-thrg
{'c': 3}
{'c': 3}
None

1 个答案:

答案 0 :(得分:1)

您只需要这个:

def funct(*args, **kwargs):
a = {'a': 1, 'b': 2}
print (args)
print (kwargs)    
return dict(a, **kwargs)

funct('t', c=1)

这将返回:

('t',)
{'c': 1}

{'a': 1, 'b': 2, 'c': 1}