python *args 和 **kwargs

*args**kwargs经常在python的函数中看到,这两个变量并不一定要写成*args **kwargs,也可以写成其他的*var``**vars,规定中只有***是必须的。而写成*args**kwargs是一种通俗的命名规定。

*args**kwaargs作用

*args**kwaargs只要用于函数定义。可以用这两个参数把不定数量的参数传给一个函数。

有时候并不知道要传多少参数给函数,这时候就可以使用这两个关键字。

*args的用法

*args用于发送一个非键值对的可变数量的参数列表给一个函数

1
2
3
4
5
6
def test_args(arg, *args):
print("normal arg:", arg)
for arg in args:
print("*arg:", arg)

test_args('normal', 'a', 'b', 'c')

输出:

1
2
3
4
normal arg: normal
*arg: a
*arg: b
*arg: c

**kwargs的用法

**kwargs用于把不定长度的键值对参数发送给函数。例子如下:

1
2
3
4
5
def test_kwargs(**kwargs):
for key,value in kwargs.items():
print("{0} == {1}".format(key,value))

test_kwargs(name="Dlala")

结果如下:

1
name == Dlala