在编写函数时使用 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