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

Python中不定长参数(*args和**kwargs)的用法

发布时间:2023-07-01 02:01:47

在Python中,有时候我们需要定义函数时不确定参数的数量,这时就可以使用不定长参数。Python中的不定长参数有两种形式:*args和**kwargs。

*args用于传递任意数量的非关键字参数,它以元组的形式接收参数。下面是一个例子:

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

my_func(1, 2, 3)

在上述代码中,我们定义了一个名为my_func的函数,并使用*args作为参数。当我们调用my_func(1, 2, 3)时,1、2和3会打印出来。

**kwargs用于传递任意数量的关键字参数,它以字典的形式接收参数。下面是一个例子:

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

my_func(a=1, b=2, c=3)

在上述代码中,我们定义了一个名为my_func的函数,并使用**kwargs作为参数。当我们调用my_func(a=1, b=2, c=3)时,a=1b=2c=3会以的形式打印出来。

同时,我们也可以混合使用*args和**kwargs。下面是一个示例:

def my_func(*args, **kwargs):
    for arg in args:
        print(arg)
    
    for key, value in kwargs.items():
        print(key, value)

my_func(1, 2, a=3, b=4)

在上述代码中,我们定义了一个名为my_func的函数,并同时使用了*args和**kwargs作为参数。当我们调用my_func(1, 2, a=3, b=4)时,1和2会以非关键字参数的形式打印出来,而a=3b=4会以关键字参数的形式打印出来。

总结一下,不定长参数*args和**kwargs可以让函数接受任意数量的参数,给函数调用带来了更大的灵活性。在函数内部处理这些参数时,*args会作为一个元组,而**kwargs会作为一个字典。所以在使用不定长参数时,我们需要根据实际情况来选择合适的参数形式。