'''
1、*args和**kwargs主要用于定义函数的可变参数

2、*args:发送一个非键值对的可变数量的参数列表给函数

3、**kwargs:发送一个键值对的可变数量的参数列表给函数

4、如果想要在函数内使用带有名称的变量(像字典那样),那么使用**kwargs。
'''
def test(s_msg,*args):  
    print(s_msg)
    print(args)
    for i in args:
        print(i)


def demo(i_num,**kwargs):
    print(i_num)
    print(kwargs)
    keys = kwargs.keys()
    value = kwargs.values()
    print(type(keys))
    print(keys)
    print(type(value))
    print(value)

test('success',1,2,3)

print('-----------')

demo(10,a=1,b=2,c=3,d=4)

'''
运行结果
success
(1, 2, 3)
1
2
3
-----------
10
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
<class 'dict_keys'>
dict_keys(['a', 'b', 'c', 'd'])
<class 'dict_values'>
dict_values([1, 2, 3, 4])
'''