如何在Python中使用* args和** kwargs?

在Python中,* args的单星号形式可用作将非关键字的可变长度参数列表发送给函数的参数。可以看出,星号(*)在这里很重要,并且与单词args一起意味着有一个可变长度的非关键字参数列表。

示例

 * args上的给定代码如下重写

def multiply(*args):
    y = 1
    for i in args:
        y = y * i
    print y
multiply(3, 4)
multiply(10, 8)
multiply(2, 5, 6)
multiply(4, 5, 10, 9)

输出结果

C:/Users/nhooo1/~.py
12
80
60
1800

** kwargs的双星号形式用于将带有关键字的可变长度参数字典传递给函数。同样,两个星号(**)很重要,并且与单词kwargs一起表示存在一个可变长关键字参数字典。

示例

** kwargs上的给定代码被重写为

def print_kwargs(**kwargs):
    print(kwargs)
print_kwargs(a='foo', b=10, c =True)

输出结果

C:/Users/nhooo1/~.py
{'a': 'foo', 'b': 10, 'c': True}