参考了这里。
python中
#-*-coding:utf-8-*-
def foo(*args, **kwargs):
print 'args = ', args
print 'kwargs = ', kwargs
print '---------------------------------------'
if __name__ == '__main__':
foo(1,2,3,4)
foo(a=1,b=2,c=3)
foo(1,2,3,4, a=1,b=2,c=3)
foo('a', 1, None, a=1, b='2', c=3)
输出结果如下:
可以看出来,*args是任意多个无名的参数,它是一个tuple,而**kwargs表示有名字的关键字参数,它是一个字典。
有一点需要注意的是,在python中,args的参数不能写在kwargs后面。否则会报如下错:
SyntaxError: non-keyword arg after keyword arg