转载地址:http://blog.csdn.net/imzoer/article/details/8677614
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