如下案例所示:
def test(*args, **kwargs):
print('args:', args)
print('kwargs:', kwargs)
print('------------------------')
test(1, 2, 3, 4)
test(a=1, b=2, c=3, d=4)
test(1, 2, 3, 4, a=1, b=2, c=3)
test('a', 1, None, a=1, b='2', c=3)
对应的结果如下:
如上所示,这两个是python中的可变参数,*args表示任何多个无名参数,它是一个tuple(元组), **kwargs表示关键字参数,是一个dict(字典),在我们同时使用 *args和**kwargs时,*args参数列必须要在**kwargs前,否则就会有错误: