Python 如何将关键字参数传递给函数
在Python中,通常通过传递0个、1个或多个参数来调用函数。有两种可以使用的参数类型:
- 位置参数
-
关键字参数。
位置参数取决于它们传递给函数的顺序;它们是编程语言中使用得更普遍的参数类型。而关键字参数作为键值对传递,使得参数通过“=”运算符映射到键,从而允许Python解释器忽略位置。
在本文中,我们将讨论关键字参数以及如何在Python中将它们传递给函数。
关键字参数
关键字参数是一种特殊类型的参数,以(key, value)对的形式传递给函数。它们也被称为命名参数。当这些参数传递给函数时,它们的出现顺序或位置并不重要。
它们的工作方式类似于Python中的字典。
示例
让我们看一个小示例程序,演示了如何在函数中使用关键字参数。这里,我们定义了一个名为“team”的函数,并传递了两个参数“name”和“company”。
def team(name, company):
print(name, "is working at", company)
team(company = "Google", name = 'John')
输出
上述程序的输出如下所示:
John is working at Google
示例
现在让我们在调用函数时交换参数的位置,看看是否会影响输出结果。
def team(name, company):
print(name, "is working at", company)
team(name = 'John' , company = "Google",)
输出
执行程序时,输出显示与先前程序的输出完全相同。因此,这些参数的位置并不重要。
John is working at Google
传递多个参数
我们已经知道,Python函数可以接受任意数量的参数,只要为它们定义了相应的参数。
但是,根据传入值来定义函数的参数数量并不总是可能的。通常我们将大量的数据值作为参数传递给函数。如果我们输入100个值,那么在函数中定义100个变量是不可能的。
在这种情况下,我们使用Python预定义的特殊符号*args和**kwargs。args指的是提供给函数的位置参数,而kwargs指的是关键字参数。
**kwargs
**kwargs
允许我们向函数传递可变数量的关键字参数。为此,在函数定义和调用时,我们只需在参数或参数名称之前使用双星号(**
)。
与args一样,kwargs是一种习语;我们可以使用任何其他名称,只要我们在其前面放置(**)符号。
示例
让我们看一个**kwargs
的示例。我们正在创建一个名为”person”的函数,并将其所有详细信息作为**kwargs
参数传递给它。
def Person(**kwargs):
for key, value in kwargs.items():
print(key,"->", value)
Person(Name = 'Rahul', Sex = 'Male', Age = 38, City = 'Hyderabad', Mobile = 123456789)
输出
上面的程序的输出如下所示。我们可以通过在上面的程序中使用关键字Name、Sex、Age、City和Mobile来更清楚地看到我们打印的数据。因此,用户不会感到困惑,同时也节省了编码时间。kwargs是与参数值相关联的关键字。
Name -> Rahul
Sex -> Male
Age -> 38
City -> Hyderabad
Mobile -> 123456789
示例
这是另一个示例,用来演示**kwargs参数的用法。在这里,我们以字典格式显示输出结果。
def print_kwargs(**kwargs):
print(kwargs)
print_kwargs(kwargs_1="Whale", kwargs_2=5, kwargs_3= False, kwargs_4=2.1)
输出
执行以上程序后,输出结果如下所示:
{'kwargs_1': 'Whale', 'kwargs_2': 5, 'kwargs_3': False, 'kwargs_4': 2.1}