Python 如何使用可变长度的函数参数
顾名思义,具有可变长度的参数可以采用各种值。您可以使用 *(例如*args)定义一个可变参数来显示该函数可以接受可变数量的参数。
Python中可变长度参数的观察结果如下。
- 指定可变长度参数的
*args不是必需的。唯一需要的是*;变量名称可以是任何内容,如*names或*numbers。 -
使用可变长度参数可以向函数发送零个或多个参数。
-
用于存储传递给
*args的值的元组。 -
可以在变量args之前使用正式参数,但不能在其后使用。您可以在可变参数后面使用关键字参数。
阅读更多:Python 教程
函数中的*args
要在Python中向函数传递可变数量的参数,请在函数说明中使用特殊语法*args。它用于传递一个变长、无关键字的参数列表。根据惯例,在采用可变数量参数的语法中经常使用带有单词args的*号。
您可以使用*args接受比先前定义的正式参数数量更多的附加参数。使用*args可以向您当前的正式参数添加任意数量的额外参数(包括零个额外参数)。
例如,我们希望创建一个乘法函数,可以同时乘以任意数量的输入。使用可变参数使您的函数更适应数量不确定的情况。想象一下,您有一个添加数字的函数。
示例1
以下示例演示带有固定数量参数的常规函数的用法。
def add(num1, num2):
return num1+num2
print(add(4,5))
输出
生成的输出如下所示。
9
您可以指定函数接受可变数量的参数,并可以用于将多达’n’个数字相加,方法是更改参数为*args。
示例2
以下示例演示使用变量长度参数的函数的用法。
def add_num(*args):
sum = 0
for num in args:
sum += num
return sum
result = add_num(1, 2, 3)
print('Sum is', result)
result = add_num(10, 20, 30, 40)print('Sum is', result)
22
result = add_num(5, 6, 7, 8, 9)
print('Sum is', result)
输出
生成的输出如下所示。
Sum is 6
Sum is 100
Sum is 35
示例3
看看另一个例子 –
def multiply(*args):
y = 1
for num in args:
y *= num
print(y)
multiply(3, 7)
multiply(9, 8)
multiply(3, 4, 7)
multiply(5, 6, 10, 8)
输出
产生的输出如下。
21
72
84
2400
函数中的 **kwargs
使用特定的语法 **kwargs 在 Python 函数声明中传递关键字变量长度参数。使用名称 kwargs 来实现双星,双星的能力是传递关键字参数的原因(和任何数量的关键字参数)。将变量传递给函数时,您可以使用关键字参数为其指定名称。
kwargs 可以被视为将每个术语与传递的值相关联的字典。 因此,当我们通过它们进行迭代时,似乎没有任何顺序来打印 kwargs。
例子
以下示例使用 **kwargs 获取参数。
def intro(**data):
print("\n参数的数据类型:",type(data))
for key, value in data.items():
print("{} is {}".format(key,value))
intro(EmployeeName="George", Lastname="Jackson", Age=22, Phone=1234567890)
intro(Firstname="James", Lastname="Jude", Email="jamesjude@nomail.com", Country="USA", Age=25, Phone=9876543210)
输出
产生的输出如下。
参数的数据类型:
EmployeeName是George
Lastname是Jackson
Age是22
Phone是1234567890
参数的数据类型:
Firstname是詹姆斯
Lastname是裘德
电子邮件是jamesjude@nomail.com
Country是美国
Age是25
Phone是9876543210
极客教程