def sum_2_nums(a,b,*args): print("-"*30) print(a) print(b) print(args) result = a+b for num in args: result+=num print("result=%d"%result)sum_2_nums(11,22,33,44,55,66,77)sum_2_nums(11,22,33)sum_2_nums(11,22)#sum_2_nums(11)#错误,因为 形参中 至少要2个实参将元组和字典做为参数传递给函数
def test(a,b,c=33,*args,**kwargs):#在定义的时候 *,**用来表示后面的变量有特殊功能 print(a) print(b) print(c) print(args) print(kwargs)#test(11,22,33,44,55,66,77,task=99,done=89)A = (44,55,66)B = {"name":"laowang","age":18}test(11,22,33,*A,**B)#在实参中*,**表示对元祖/字典进行拆包解包
![图片描述][1]
如果不解包, args kwargs 就会当做普通的元组或者字典传入
解包的过程就是将元组解释成为参数 , 字典解释成为key=value的形式