当使用**kwargs
语法将一个字典传递给函数或方法时,Python会根据形参(函数定义中的参数)来提取**kwargs
中的对应值。
当函数或方法定义中包含**kwargs
参数时,它允许接受任意数量的关键字参数,并将它们作为字典传递给函数体。在函数体内部,可以使用字典的键来访问传递的关键字参数的值。
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
函数定义了两个必需的位置参数name
和age
,以及一个**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