在编写函数时使用 kwargs

你可以通过在参数名称前使用双星**来定义一个接受任意数量的关键字(命名)参数的函数:

def print_kwargs(**kwargs):
    print(kwargs)

在调用方法时,Python 将构造一个包含所有关键字参数的字典,并使其在函数体中可用:

print_kwargs(a="two", b=3)
# prints: "{a: "two", b=3}"

请注意,函数定义中的** kwargs 参数必须始终是最后一个参数,并且它只匹配在前一个参数之后传递的参数。

def example(a, **kw):
    print kw

example(a=2, b=3, c=4) # => {'b': 3, 'c': 4}

在函数体内部,kwargs 的操作方式与字典相同; 为了访问 kwargs 中的各个元素,你只需像使用普通字典一样遍历它们:

def print_kwargs(**kwargs):
    for key in kwargs:
        print("key = {0}, value = {1}".format(key, kwargs[key])) 

现在,调用 print_kwargs(a="two", b=1) 显示以下输出:

print_kwargs(a = "two", b = 1)
key = a, value = "two"
key = b, value = 1