欢迎访问宙启技术站
智能推送

Python函数中的可变参数:*args和**kwargs

发布时间:2023-06-19 03:14:30

Python中,*args和**kwargs是指函数中的可变参数。可变参数在函数定义时没有被明确声明,而是允许函数处理任意数量的参数。这让函数在处理不确定数量和种类的参数时更加灵活。

*args:一个星号代表一个可变元素,它是一个元组类型。可以用该参数在函数中传递不确定数量的参数。当函数被调用时,需要将一篮子参数放在一起,然后*args将它们一起取出来。例如:

def test(*args):
   for arg in args:
      print(arg)

test(1,2,3,4,5)

上述代码将打印出1,2,3,4,5。

**kwargs:两个星号代表键值对是可以传递给函数的,而这两个星号会把这些键值对变成一个字典。类似于*args,**kwargs可接收不定数量的关键词参数,但这些参数被存储为字典类型。例如:

def test(**kwargs):
   for key, value in kwargs.items():
      print(key, value)

test(name="Tom", age=18, sex="male")

上述代码将打印出name Tom,age 18,sex male。

需要注意的是,如果在函数定义时先声明了一个表示单个参数的形式参数,那么在调用函数时就必须把这个参数传进去。例如:

def demo(a, *args, **kwargs):
   print(a, args, kwargs)

demo("hello", 1, 2, 3, name="Tom", age=18, sex="male")

上述代码将打印出hello (1, 2, 3) {'name': 'Tom', 'age': 18, 'sex': 'male'}。

总之,*args和**kwargs是Python函数的很好的可变参数方式。使用这些参数允许我们以更灵活的方式编写函数,使它们能够处理各种参数输入,包括数量和类型不确定的情况。