python参数 *args 和 **kwargs

* 用来传递任意个无名字参数,这些参数会一个Tuple的形式访问。

**用来处理传递任意个有名字的参数,这些参数用dict来访问。

1 def testArg(a,*args,**kwargs):
2     print a,'---',args,'-----',kwargs
3     
4 testArg(1,(1,2,4),4,b=1)

打印结果:

1 --- ((1, 2, 4), 4) ----- {'b': 1}

值得说明的是: * 或者 ** 必须在参数的最后面,也是就说 def testArg(a,*args,b,**kwargs):是不允许的

原文地址:https://www.cnblogs.com/lanxue/p/2631023.html