欢迎访问宙启技术站

Python函数中的 *args 和 **kwargs 参数

发布时间:2023-12-04 03:06:28

在Python中,我们可以定义函数时使用*args和**kwargs参数。这两个参数允许我们在函数调用时传入不定数量的参数。

*args参数用于传递一个非关键字的可变数量的参数。当我们在函数定义中使用*args参数时,它会将所有传递给函数的非关键字参数收集到一个元组中。这样我们就可以在函数内部使用这个元组来操作所有传递的参数。下面是一个例子:

def my_function(*args):
  for arg in args:
    print(arg)
    
my_function('Hello', 'World', '!')

输出:

Hello
World
!

在这个例子中,我们可以传递多个参数给my_function函数,并使用循环打印出每个参数的值。

**kwargs参数用于传递一个关键字的可变数量的参数。当我们在函数定义中使用**kwargs参数时,它会将所有传递给函数的关键字参数收集到一个字典中。这样,我们可以在函数内部使用这个字典来操作所有传递的关键字参数。下面是一个例子:

def my_function(**kwargs):
  for key, value in kwargs.items():
    print(key, value)
    
my_function(name='John', age=25, city='New York')

输出:

name John
age 25
city New York

在这个例子中,我们可以传递多个关键字参数给my_function函数,并使用循环打印出每个参数的键值对。

*args和**kwargs参数可以同时在同一个函数中使用,以便接收任意数量的参数。下面是一个例子:

def my_function(*args, **kwargs):
  for arg in args:
    print(arg)
  for key, value in kwargs.items():
    print(key, value)
    
my_function('Hello', 'World', name='John', age=25, city='New York')

输出:

Hello
World
name John
age 25
city New York

在这个例子中,我们可以传递任意数量的非关键字参数和关键字参数给my_function函数,并将它们打印出来。

总结来说,*args和**kwargs参数允许我们在函数调用时传递任意数量的参数,并将它们收集到一个元组或字典中,以便在函数内部进行操作。这是Python函数的灵活性和强大性之一,使我们能够处理不确定数量的参数。