在Python中向另一个函数传递Kwargs
Python列出了两类可以在程序中传递给函数的参数。非关键字参数 (**args
) 和关键字参数 (**kwargs
) 。
通常情况下,Python函数必须以正确的参数数量来调用。如果函数期望有两个参数,我们应该只传递两个。
在这篇文章中,我们将讨论如何使用关键字参数以及如何将关键字参数传递给另一个函数。
Python 中的关键字参数
一般来说,参数确实可以向函数传递信息。关键字参数是一种可以用来向函数传递参数的方法。
特别是使用关键字参数,我们可以用key = value
语法发送参数。让我们看一下下面的例子。
def keyword_function(fname,lname,age):
print("first name is " + fname )
keyword_function(fname= "Anne",lname= "Steaven" ,age= 27)
这个例子定义了一个名为keyword_function
的函数。它传递了三个参数,分别是fname
,lname
, 和age
。
所以,这些参数是作为关键字参数发送的,因为当函数在程序中调用时,它对每个参数都采取键和值对。
输出:
在上面的输出中,我们打印了一个通过fname
参数的语句。
在Python中用**kwargs
来调用函数
主要是关键字参数可以在几个参数未知时使用。在这种情况下,在函数定义中的参数名称前加两个星号(**
)。
如果函数有一个**kwargs
参数,它就会接受一个数量不等的关键字参数作为字典。
请思考一下下面的例子。
def animals(**kwargs):
print(kwargs)
animals(name1='Rabbit',name2='Dog',name3='Monkey')
在上面的代码中,有一个名为animals
的函数。它有一个叫**kwargs
的参数,函数调用时有三个参数作为关键字参数。
输出:
我们可以看到结果是一个有两对值和键的字典。kwargs
的参数是惯例。
所以,作为参数名,我们可以使用任何有意义的名字。与此相同,这就是他们如何用**kwargs
参数调用一个函数。
用Python将kwargs
传给另一个函数
代码:
def info(**):
x = dict(name="shen",age=27,degree="SE")
pass_func(**x)
def pass_func(**kwargs):
for i in kwargs:
print(i,kwargs[i])
info()
使用上面的代码,我们打印了关于这个人的信息,如name
,age
, 和degree
。这个程序将kwargs
传递给另一个函数,该函数包括变量x
,声明了dict
方法。
例子定义了函数info
,没有任何参数。函数info
声明了一个变量x
,它定义了三个键值对,通常,键值对在 Python 中定义为字典类型。
因此,dict
方法指定了键和值的对。由于kwargs
解压参数被声明为字典类型,我们可以在这个例子中使用dict
方法。
然后我们有另一个叫做pass_func
的函数,它传递kwargs
的参数。这个函数包括一个for
循环,打印kwargs
参数,之后,我们可以将kwargs
函数传递给info
函数,打印x
。
因此,我们调用pass_func
,将kwargs
的参数传给x
变量。最后,我们在pass_func
函数中调用info
函数。
输出:
结论
在整篇文章中,我们着重讨论了如何将kwargs
传递给另一个函数。kwargs
参数可以得到几个变量,而每个参数都没有定义参数。
当把kwargs
参数传递给函数时,它必须使用双星号与参数名**kwargs
。当把kwargs
传递给另一个函数时,首先,用两个星号创建一个参数,然后我们可以把该函数传递给另一个函数作为我们的目的。