Python中神奇的参数*args和**kwargs使用方法详解
在编程中,我们定义一个函数来完成某项功能,实现可重用代码。调用函数时,可以传递给函数不同的值,该值在 Python函数中称为参数。
让我们定义一个使用两个参数的简单函数:
在上面的程序中,我们定义了一个带有两个参数的函数。我们在调用函数时传递两个,我们得到两个数字的乘积作为输出。
*args
如果我们需要计算三个数字的乘积,该怎么办?如果尝试向函数添加额外的参数,如下所示,程序将返回错误。
当我们不确定函数的参数数量时,我们使用*args、**kwargs作为参数。Python允许我们将可变数量的参数或非键值对参数 *args、**kwargs传递给函数。
在函数中,我们在参数名称前使用星号(*)来表示可变长度的参数。参数作为元组传递。
*args中 关键是星号(*),表示来接收可变数量的参数,通常与args一词一起使用,也可以使用其他词。
**kwargs
Python可以使用*args传递多个参数,但是不能使用它来传递键值对(字典)参数。Python另一个名为 **kwargs的参数允许我们将字典类型的键值对参数传递给函数。
输出结果:
a - 10
b - 20
c - 30
d - 40
同样,**kwargs使用两个星号来传递可变数量的键值对参数,kwargs不是必需的,可以用其他词来代替。
在函数调用中使用 *args 和 **kwargs
我们还可以使用*args*和*kwargs将参数传递到函数中。
输出结果:
24
a: 10
b: 20
c: 30
文中涉及代码:
def cheng(x,y,z):
return x*y*z
args=(2,3,4)
print(cheng(*args)) #输出24
def myFun2(a,b,c):
print("a:",a)
print("b:",b)
print("c:",c)
dict1={'a':10,'b':20,'c':30}
myFun2(**dict1)
def myFun(**kwargs):
for i in kwargs:
print(i,'-',kwargs[i])
myFun(a=10, b=20, c=30, d=40)
def cheng(*args):
c=1
for n in args:
c=c*n
return c
print(cheng(2,3)) #输出6
print(cheng(2,3,4)) #输出24
print(cheng(2,3,4,5)) #输出120
def cheng(x,y):
return x*y
print(cheng(2,3))
print(cheng(2,3,4))
感谢阅读,关注我,精彩继续!