Python中的**kwargs使用

当使用**kwargs语法将一个字典传递给函数或方法时,Python会根据形参(函数定义中的参数)来提取**kwargs中的对应值。

当函数或方法定义中包含**kwargs参数时,它允许接受任意数量的关键字参数,并将它们作为字典传递给函数体。在函数体内部,可以使用字典的键来访问传递的关键字参数的值。

举例1:

def print_info(name, age, **kwargs):
    print("Name:", name)
    print("Age:", age)
    
    occupation = kwargs.get('occupation')
    city = kwargs.get('city')
    
    print("Occupation:", occupation)
    print("City:", city)

# 调用函数并传递额外的关键字参数
print_info("John", 25, occupation="Engineer", city="New York")

结果

Name: John
Age: 25
Occupation: Engineer
City: New York

在这个例子中,print_info函数定义了两个必需的位置参数nameage,以及一个**kwargs参数。在函数体内部,我们使用kwargs.get()方法来从kwargs字典中提取关键字参数的值。如果关键字参数存在,则返回对应的值;如果不存在,则返回None

通过使用kwargs.get()或直接使用kwargs[key],我们可以根据需要从**kwargs中提取关键字参数的值,并在函数内部进行处理。这样,我们可以根据函数的具体需求选择使用关键字参数,而不需要预先定义固定的参数列表。

举例二:

def shuchu(a,b,c="ccc",d="aaa"):
    print(c,d)

def ceshi(a,b,**kwargs):
    shuchu(a,b,**kwargs)

a =1
b = 2
c = 3
d = 4
ceshi(a,b,c=c,d=d)

结果:

3 4

你可能感兴趣的:(python,python,开发语言)