1.def foo(*args, **kwargs):
print 'args = ', args
print 'kwargs = ', kwargs
foo(1,2,3,4)
foo(a=1,b=2,c=3)
foo(1,2,3,4, a=1,b=2,c=3)
*args是非关键字参数,用于元组,**kw是关键字参数,用于字典(就是 = 的)
结果:
args = (1, 2, 3, 4)
kwargs = {'a': 1, 'c': 3, 'b': 2}
调用:
可变参数既可以直接传入:func(1, 2, 3)
,又可以先组装list或tuple,再通过*args
传入:func(*(1, 2, 3))
;
关键字参数既可以直接传入:func(a=1, b=2)
,又可以先组装dict,再通过**kw
传入:func(**{'a': 1, 'b': 2})