函数声明的时候参数前面加*说明接受不限数量的无名参数。在函数体内这个参数实际上是一个列表,包含固定参数外的所有无名参数。
不定的有名参数可以用**来声明,在函数体内是一个字典。
def test(parm1,parm2,*args,**kwargs): print("%s %s %s %s "%(parm1,parm2,args,kwargs)) >>> test('ABC',123,'unnamed arg1',(1,2,'3','4'),namedarg=('foo','foo2'),anothernamedarg='+-*/') ABC 123 ('unnamed arg1', (1, 2, '3', '4')) {'namedarg': ('foo', 'foo2'), 'anothernamedarg': '+-*/'}