*args和 **kwargs的两大重要知识点:装包与解包
1、*args是用于接收多余的未命名参数,**kwargs用于接收形参中的命名参数,其中args是一个元组类型,而kwargs是一个字典类型的数据;
2、*args是把元组中的数据进行拆包,也就是把元组中的数据拆成单个数据;**kwargs是把字典中的数据进行拆包,也就是把字典中的数据拆成单个键值对;

下面是上面程序的输出结果:

理解这段代码需要把握住下面几点:
1.形参中的*args其实真正接收数据的args,它是一个元组,把传进来的数据放在了args这个元组中。
- 函数体里的args依然是那个元组,但是*args的含义就是把元组中的数据进行拆包,也就是把元组中的数据拆成单个数据。
**kwargs与上述*args同理。


网友评论