python中*args,**args的区别

 
 

先看示例1:

def test(a,b,c=3,*args):
    print(a)
    print(b)
    print(c)
    print(args)
test(11,22,33,44,55)

输出值分别为:

11
22
33
(44,55)

也就是说args中保存的是没有利用的所有多余参数,保存方式为元组

再看示例2:

def test(a,b,c=3,*args1,**args2):  
    print(a)  
    print(b)  
    print(c)  
    print(args1)
    print(args2)  
test(11,22,33,dd=44,ee=55,ff=66)  
输出结果为:
11
22
33
()
{'dd':44, 'ee':55, 'ff':66}

即输入多余参数有变量名,就保存在**args中保存,保存方式为字典


如果多余参数中既有*args类型,也有**args类型,则分别保存



另外参数输入时还有拆包操作。。。。




猜你喜欢

转载自blog.csdn.net/doubleicefire/article/details/80058168