简介
在函数定义中,参数是指定给定函数可以接受的参数的命名实体。
在编程时,您可能不知道代码的所有可能用例,并且可能希望为将来与模块一起工作的程序员或与代码交互的用户提供更多选项。我们可以通过在代码中使用 *args
和 **kwargs
来向函数传递可变数量的参数。
先决条件
您应该已经安装了 Python 3,并在计算机或服务器上设置了编程环境。如果您还没有设置编程环境,可以参考适用于您的操作系统(Ubuntu、CentOS、Debian 等)的本地编程环境或服务器编程环境的安装和设置指南。
理解 *args
在 Python 中,单个星号形式的 *args
可以用作参数,将非关键字的可变长度参数列表传递给函数。值得注意的是,这里的星号(*
)是重要的元素,因为单词 args
是已建立的惯例用法,尽管语言并没有强制执行。
让我们看一个使用两个参数的典型函数:
def multiply(x, y):
print (x * y)
在上面的代码中,我们使用 x
和 y
作为参数构建了函数,然后当我们调用函数时,我们需要使用数字与 x
和 y
对应。在这种情况下,我们将整数 5
传递给 x
,将整数 4
传递给 y
:
def multiply(x, y):
print (x * y)
<^>multiply(5, 4)<^>
现在,我们可以运行上面的代码:
python lets_multiply.py
我们将收到以下输出,显示整数 5 和 4 被按照 multiply(x,y)
函数相乘:
20
如果以后我们决定想要将三个数字相乘而不仅仅是两个,如果我们尝试向函数添加额外的数字,如下所示,我们将收到一个错误。
def multiply(x, y):
print (x * y)
multiply(5, 4, 3)
TypeError: multiply() takes 2 positional arguments but 3 were given
因此,如果您怀疑以后可能需要使用更多参数,可以使用 *args
作为参数。
我们可以基本上创建与我们在第一个示例中展示的相同的函数和代码,方法是删除 x
和 y
作为函数参数,而是用 *args
替换它们:
def multiply(<^>*args<^>):