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

如何编写可变参数的Python函数

发布时间:2023-06-17 06:42:40

Python 是一种灵活的语言,提供了许多方便的方式编写可变参数的函数。可变参数指的是函数不确定输入参数的数量,这让开发者在编写函数时非常方便。在本文中,我们将介绍使用 asterisk (*) 和 double asterisk (**) 在 Python 中编写可变参数的函数。

使用 *args

最常见的可变参数是使用 *args 。例如,我们想编写一个求和函数,允许传递任意数量的参数,就可以使用 *args。在函数的参数列表中使用 *args,会将所有的位置参数收集到一个元组中。

例如:

def sum(*args):
    total = 0
    for i in args:
        total += i
    return total

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

这将返回 15。

使用 **kwargs

除了 *args 以外,另一个可用的可变参数是 **kwargs 。在函数的参数列表中使用 **kwargs,会将所有的关键字参数收集到一个字典中。我们也可以同时使用 args 和 kwargs。

例如,以下代码将接受任意数量的位置参数和关键字参数:

def example(*args, **kwargs):
    print(args)
    print(kwargs)

如果我们调用该函数,传入一些参数:

example(1, 2, 3, name="Alice", age=25)

将输出:

(1, 2, 3)
{'name': 'Alice', 'age': 25}

也就是说,args 是一个元组,kwargs 是一个字典。

也可以将一个列表或者字典类型作为可变参数传入:

def foo(*args, **kwargs):
    print(args)
    print(kwargs)
    
lst = [1, 2, 3]
dct = {'a': 1, 'b': 2}
foo(*lst, **dct)

这将返回:

(1, 2, 3)
{'a': 1, 'b': 2}

总结

在 Python 中,我们可以使用 *args 和 **kwargs 这两个特殊的符号来接受可变参数。如果要接受任意数量的位置参数,使用 *args;如果要接受任意数量的关键字参数,使用 **kwargs。我们还可以同时使用 *args 和 **kwargs。

以上是 Python 中编写可变参数的方法。掌握了这些方法,我们可以更容易地定义函数,满足各种使用场景的需求,提高自己编写程序的效率。