Python 中的 kwargs
我们可以为函数提供不同的参数。这些参数在函数中用于执行一些所需的工作。
在编程中,我们用函数名指定括号中的参数。我们可以在函数定义中指定所需的参数数量。
在 Python 中使用 **kwargs
让函数获取任意数量的关键字参数
Python 中有关键字、位置和任意参数。Python 提供了一个有趣的特性 **kwargs
。
它是代表关键字参数的标准符号。我们可以使用 this 为函数提供任意数量的参数。
这里 kwargs
只是一个变量名,可以用任何其他有效的变量名替换。这里的主要部分是**
运算符。
**
在 Python 中被称为解包操作符。我们用它来解压 Python 中的字典。
我们还有 *
运算符,它可以解包列表、元组和其他可迭代对象,它们可以使用这两者来为函数提供任意数量的参数。
kwargs
背后的主要概念是函数将接收这些参数打包到一个对象中。它将解包所有元素并根据需要在函数中使用它们。
首先,让我们用 *
运算符来演示这一点。如前所述,它用于从可迭代的列表或元组中解包元素。
最基本的使用方法是在函数定义中提供*kwargs
。这样,我们可以为函数指定任意数量的参数。
def fun(*l):
for i in l:
print(i)
fun(1, 2, 3)
输出:
1
2
3
在 Python 中调用函数时使用 *l
参数解包参数
在上面的示例中,我们使用函数的 *l
参数来解包多个参数并打印它们。
类似地,*l
可用于在调用函数时解包参数。在这里,角色颠倒了。
def fun(x, y):
print(x, y)
l = [5, 7]
fun(*l)
输出:
5 7
在上面的例子中,我们不能直接向函数发送一个列表。所以我们在调用函数时解压它。
现在让我们讨论**kwargs
。使用这种方法,我们可以为函数提供许多关键字参数。
参数作为字典的键值对传递,并使用 **
运算符在函数中解包。
def fun(**kwargs):
for i in kwargs:
print(i, kwargs[i])
fun(a=1, b=2, c=3)
输出:
a 1
b 2
c 3
我们使用 **kwargs
将多个关键字参数传递给上例中的函数。
我们还可以同时使用这两种方法来指定多个参数和位置参数。
def fun(x, **kwargs):
print("Multiple Keyword Arguments")
for i in kwargs:
print(i, kwargs[i])
print("Positional arguments", x)
fun(10, a=1, b=2, c=3)
输出:
Multiple Keyword Arguments
a 1
b 2
c 3
Positional arguments 10
确保关键字参数的顺序很重要,因为在 Python 3.6 中,会记住它们的插入顺序。
我们还可以在 Python 3 中使用 *
运算符进行扩展的可迭代解包。我们可以使用赋值语句左侧的运算符。
我们也可以使用它在函数调用中提供多个参数。
def fun(x, z, *l):
print("Multiple Arguments")
for i in l:
print(i)
print("Positional arguments", x, z)
x, *y, z = [1, 2, 3, 4]
fun(x, z, *y)
输出:
Multiple Arguments
2
3
Positional arguments 1 4
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn