# 关键字参数
# 可变参数允许你传入0个或任意个参数，这些可变参数在函数调用时自动组装为一个tuple。
# 而关键字参数允许你传入0个或任意个含参数名的参数，这些关键字参数在函数内部自动组装为一个dict。

def person(name, age, **kw):
    print('name', name, 'age', age, 'others', kw); #这里使用形参的时候不需要加上俩个*


if __name__ == '__main__':
    person('Bob', 35, city='Beijing')
    dic ={"job":'coder',"tel":"13871433675"}
    person('qizhi',30,**dic) #这里可变参数和关键字参数传入的是列表和字典的时候需要加上*

# 作用：
# 关键字参数有什么用？它可以扩展函数的功能。比如，在person函数里，我们保证能接收到name和age这两个参数，但是，如果调用者愿意提供更多的参数，
# 我们也能收到。试想你正在做一个用户注册的功能，除了用户名和年龄是必填项外，其他都是可选项，利用关键字参数来定义这个函数就能满足注册的需求。