args代表收集参数,*号其实是个匿名的收集参数,即所给的位置参数。*args 在形式参数上使用代表打包参数
输入实参后,输出结果会打包成为元组,例如上图type返回的是tuple (元组)
由于args收集参数和*这种匿名的收集参数。代表左边打包位置参数,而右边必须必须用关键词参数这种形式。
**kwargs收集参数通过两个打包的**,将参数打包为字典。即**kwargs为字典形式的收集参数。
如上文所说。*号放在收集参数前面。在形式参数上使用意味着打包。输入实际参数后,返回结果会将实际参数打包。
但在实际参数前面使用,则以为着解包。当收集参数是一个元组时。他可以将其解包成为几个参数。
例如上图中的收集参数args=(1,2,3,4,)是一个元组,但def myfunc(a,b,c,d)为4个形式参数的形式。
于是直接将其打印,1对4 会报错。
我们可以在收集参数前面加*将其解包。将实际参数解包,然后正常输出结果。
字典形式的收集参数规则一样。