*args表示任何多个无名参数,它是一个tuple(元组);**kwargs表示关键字参数,它是一个dict(字典)
1 def foo(*args, **kwargs): 2 print 'args = ', args 3 print 'kwargs = ', kwargs 4 print '---------------------' 5 if __name__ == '__main__': 6 foo(1,2,3,4) 7 foo(a=1,b=2,c=3) 8 foo(1,2,3,4, a=1,b=2,c=3) 9 foo('a', 1, None, a=1, b='2', c=3)
就从上面运行结果来看,可以看到,这两个是python中的可变参数
注意:同时使用*args和**kwargs时,必须*args参数列要在**kwargs前面,自己可以尝试一下 看下结果
另外还有个用法,创建字典
1 def kw_dict(**kwargs): 2 return kwargs 3 print kw_dict(a=1,b=2,c=3)
打印出来:
1 {'a':1, 'b':2, 'c':3}