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的形式