关键字参数和默认值参数

python **<字典>

可以将字典拆包

def func(**kwargs):
	print(kwargs)
    
# 这里的**代表可以传递字典(以字典的形式传递参数)
# key:value只能以键值对方式传递
# 或者以**传值
func()
func(a=1,b=2,c=3)

# 传递字典的方法
dict1 = {'001': 'python', '002': 'java', '004': 'c++'}
func(**dict1)
# 拆包步骤:
# 1、func(001 = python,002 = java,004 = c++)将字典拆包成关键字参数的形式
# 2、func里面的参数都是关键字参数
# 3、将关键字参数再一次进行装包动作
# 4、装包成功:kwargs
studens = {
    '001': ('蔡徐坤', 20),
    '002': ('王源', 18),
    '003': ('王俊凯', 21),
    '004': ('易烊千玺', 19)
}


def print_boy(name, **persons):
    print('{}喜欢吃肉肉'.format(name))
    if isinstance(persons, dict):  # 判断是不是什么类型:isinstance,这里判断是不是person是不是字典类型
        values = persons.values()  # 如果是字典,那么使用values接受字典里面的键值对
        # print(values)             # 输出字典
        for name, age in values:  # 使用name和age接受values中的键值对
            print('{}的年龄是{}'.format(name, age))  # 循环输出字典中的元素


print_boy('健健', **studens)