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
Capital is Hyderabad
Population is 3400000

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程