您可以通过**在参数名称前使用双星号来定义一个函数,该函数采用任意数量的关键字(命名)参数:
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