Python中的*args和**kwargs

Python中的*args和**kwargs

当我们在Python程序中定义一个函数时,目的是通过为函数的参数提供不同的值来多次执行代码。这种设计中的一个挑战是,如果我们不确定想要在每次调用该函数时处理的参数数目怎么办。这就是需要特殊参数*args和**kwargs的地方。让我们逐个查看它们。

*args

*args使我们能够将可变数量的参数用作函数的输入。在下面的示例中,我们正在查找一系列数字的乘积结果。这些数字的计数每次调用函数时都会有所不同。

示例

def findproduct(*many_nums):
   result = 1
for num in many_nums:
   result = result * num
print("Multiplication result:",result)

findproduct(3,9)
findproduct(2,11,10)

输出

运行上述代码会给出以下结果 –

Multiplication result: 3
Multiplication result: 27
Multiplication result: 2
Multiplication result: 22
Multiplication result: 220

**kwargs

接下来,有些情况下,我们希望将关键字参数作为函数的参数传递,这些参数基本上是键值对。

在这里,我们可以将可变数量的这些关键字参数传递给函数。这些参数被命名为**kwargs。请注意,在使用此类参数时有两个星号。实际上,这样的关键字参数作为Python字典传递到程序中,该字典包含许多键值对。

示例

def country_details(**state_info):
   print('')
   for k,v in state_info.items():
      print("{} is {}".format(k,v))

country_details(StateName="Telangana", Capital="Hyderabad",Population=3400000)
country_details(StateName="Andhra Pradesh", Capital="Amaravati",Population=1000000,ForestCoverage="30%")

输出

运行上述代码会给出以下结果 –

StateName is Telangana
Population is 3400000
Capital is Hyderabad

StateName is Andhra Pradesh
Population is 1000000
ForestCoverage is 30%
Capital is Amaravati

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python 教程