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

Python函数中的不定长参数

发布时间:2023-07-02 04:07:54

在Python中,我们可以使用不定长参数来定义函数,这样可以接收任意数量的参数。不定长参数分为两种:*args和**kwargs。

1. *args参数:

*args参数是用来接收任意数量的位置参数的。在函数定义时,我们可以在参数列表中使用*args来表示该参数为不定长参数。当函数被调用时,所有传入的位置参数会被收集到一个元组中,然后赋值给args参数。

示例:

def foo(*args):
    for arg in args:
        print(arg)
        
foo(1, 2, 3, 4, 5)

输出:

1
2
3
4
5

2. **kwargs参数:

**kwargs参数是用来接收任意数量的关键字参数的。在函数定义时,我们可以在参数列表中使用**kwargs来表示该参数为不定长参数。当函数被调用时,所有传入的关键字参数会被收集到一个字典中,然后赋值给kwargs参数。

示例:

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

3. *args和**kwargs同时使用:

我们也可以同时使用*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, 4, name='Alice', age=25, city='New York')

输出:

1
2
3
4
name Alice
age 25
city New York

使用不定长参数的好处是可以处理不同数量和类型的参数,使函数更加通用和灵活。在实际开发中,不定长参数常用于封装一些通用的操作或者在调用其他函数时传递不定数量的参数。