python 使用 kwargs 调用函数

ary*_*yan 3 python keyword-argument

我有一个功能:

def myfunc():
    kwargs = {}
    a = 1
    b = 2
    kwargs.update(a=a, b=b)
    newfunc(**kwargs)
Run Code Online (Sandbox Code Playgroud)

和我的新功能

def newfunc(**kwargs):
    print a
Run Code Online (Sandbox Code Playgroud)

它没有给出 a 的值为 1

怎么了 ?

Luc*_*ZAN 5

这是因为你没有在字典中放入任何键、值,你应该这样写:

def newfunc(**kwargs):
    print kwargs["a"]

def myfunc():
    kwargs = {"a" :1, "b": 2}
    newfunc(**kwargs)
Run Code Online (Sandbox Code Playgroud)

您可以参考此线程以更好地理解 kwargs :Understanding kwargs in Python