Python函数的参数详解https://blog.csdn.net/cnds123/article/details/123264378
在函数定义时,如果你想要接收不定数量的位置参数或关键字参数,并且希望以元组或字典的形式引用它们,就需要使用 *args 和 **kwargs 这样的语法结构。
注意*args 和 **kwargs 只是通用的约定俗成的名称,实际上你可以使用其他名称来代替它们。但 * 和 ** 是用于解构参数的语法符号,不能去掉。
*args 和 **kwargs 是用于在函数定义和函数调用中处理可变数量的参数的特殊语法。
*args 表示接受任意数量的位置参数((positional arguments)非关键字参数),这些参数将作为元组(tuple)传递给函数。函数内部可以通过遍历元组来访问这些参数。例子:
def foo(*args):
for arg in args:
print(arg)
foo(1, 2, 3) # 输出:1 2 3
**kwargs 表示接受任意数量的关键字参数(keyword arguments),这些参数将作为字典(dictionary)传递给函数。函数内部可以通过字典的键值对来访问这些参数。例子:
def bar(**kwargs):
for key, value in kwargs.items():
print(key, value)
bar(name='Alice', age=25, city='New York')
输出:
name Alice
age 25
city New York
在函数定义中,可以同时使用 *args 和 **kwargs 来接受任意数量的位置参数和关键字参数。例子:
def baz(*args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(key, value)
baz(1, 2, 3, name='Bob', age=30)
输出:
1
2
3
name Bob
age 30