我们知道如何编写函数将其参数收集成一个元组:
def print_all(*args):
print(args)
可以使用任意个参数的按位实参(也就是说,不带名称的实参)来调用这个函数:
print_all(1, 2.0, '3')
但是 * 号操作符并不会收集关键词实参:
要收集关键词实参,可以使用 ** 操作符:
def print_all(*args, **kwargs):
print(args, kwargs)
如果有一个关键词到值的字典,就可以使用分散操作符 ** 来调用函数:
没有用分散操作符的话,函数会把 d 当作一个单独的按位实参,所以它会把 d 赋值给 x,并因为没有提供 y 的赋值而报错:
当处理参数很多的函数时,创建和传递字典来指定常用的选项是非常有用的。
本文参考自《像计算机科学家一样思考Python (第2版)》