如何在 Python 中向函数传递关键字参数?


在 Python 中,函数通常通过向其传递零个、一个或多个参数来调用。可以使用两种类型的参数:

  • 位置参数

  • 关键字参数。

位置参数取决于它们传递给函数的顺序;它们是编程语言中更常见的参数类型。而关键字参数则以键值对的形式传递,以便使用“=”运算符将参数映射到一个键,这使得 Python 解释器可以忽略位置。

在本文中,我们将讨论关键字参数/参数以及如何在 Python 中将它们传递给函数。

关键字参数

关键字参数是一种特殊类型的参数,以 (键,值) 对的形式传递给函数。它们也称为命名参数。当这些参数传递给函数时,它们的出现顺序或位置无关紧要。

它们的工作原理类似于 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}

更新于: 2023-02-24

5K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.