*args与**kwargs可以将任意数目的参数传递给函数,主要用在函数定义中,最常见的是在装饰器中使用。
def test1(*args):
for a in args:
print(a)
test1('Hello', 1, [2])
# 或者
test1(*('Hello', 1, [2]))
test1(*['Hello', 1, [2]])
返回:
def test2(**kwargs):
for k, v in kwargs.items():
print(k, v)
test2(one = 1, two = 2)
# 或者
test2(**{'one':1, 'two':2})
返回:
参数传递的顺序为:func(fargs, *args, **kwargs),先接收普通参数,然后是*args,最后是**kwargs。