立即学习:https://edu.csdn.net/course/play/24797/282180
参数收集,就是允许传来的参数大于定义的参数的个数。其中有且只有一个参数是支持参数收集的。在定义函数时,在参数前面加一个 * 号,则表示这个参数是函数中唯一支持普通参数收集的
如果支持普通参数收集的形参位于后面,则会把剩余的所有值自动封包为一个元组给最后一个参数,
如果支持普通参数收集的形参位于前面,则后面的参数需要使用关键字传参数值。
关键字参数收集:在定义函数时,在参数前面加一个 **,则表示这个参数是函数中唯一支持关键字参数收集的,
函数中可以同时存在普通参数收集和关键字参数收集,关键字参数只收集不明确的关键字参数(即使用关键字参数赋值的参数名是原本参数中没有的)收集完后变成一个字典。
参数是一个元组时,传入它不会自动解包。
例:value = (20,40)
def test (a,b):
print(a)
print(b)
test(values) ——错,不会自动解包
所以出现一个逆向收集(个人理解就是解包啦)
test(*values)——对
如果values是一个字典的话,python用**将其解包后,会把它当做是关键字参数,所以只传了字典中key-value对中的value。