关键字参数允许我们在传入必选参数外,还可以接受关键字参数kw:
def person(name, age, **kw) prit('name:', name, 'age:', age, 'other', kw)
这里的name, age
是必须的,kw
可选,意味着第三个参数开始我们可以传入任意个数的关键字参数:
>>> person('Bob', 35, city = 'Bejiing') anme: Bob age: 35 other: {'city': 'Beijing'} >>> person('Adam', 45, gender = 'M', job = 'Engineer') name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
这个例子里, 关键字参数让我们保证能接收到name
和age
这两个参数,但是,如果提供更多的参数,我们也能收到。
实际上,关键字参数kw
是个dict, 如果我们已经准备好了dict,只需要在前面加**
就可以转换为参数传入:
param = {'gender': 'M', 'job': 'Engineer'} >>> person('Adam', 45, **param) name: Adam age: 45 other: {'gender}
注:关键字参数kw
获得的dict是param的一份拷贝,对kw的改动不会影响到函数外的param。