Skip to main content
 首页 » 编程设计

python之将选定的参数从字典传递给函数

2025年05月04日15think

给定一组签名不同的函数和一个包含每个必需参数的(键,值)对的字典,我想找到一种优雅的方式将字典传递给每个函数,以便每个函数可以使用它需要的函数中的参数。

def first_function(name, age): 
    print(name, " ", age) 
 
def second_function(name, gender): 
    print(name, " ", gender) 
 
param_dict = {'name': 'Max', 'age': 23, 'gender':'m'} 

通过指定 second_function(**param_dict) 将 param_dict 传递给函数会引发错误,因为两个函数都不需要所有三个参数。有没有一个优雅的解决方案,让每个函数都“提取”它需要的参数?

请您参考如下方法:

您可以简单地将 **kwargs 作为第三个参数传递来解决这个问题,因为它会从字典中消耗它需要的内容,其余的将保留在 kwargs 中收集 字典:

def first_function(name, age, **kwargs): 
    print(name, age) 
 
def second_function(name, gender, **kwargs): 
    print(name, gender) 
 
param_dict = {'name': 'Max', 'age': 23, 'gender':'m'} 
 
first_function(**param_dict) 
# Max 23 
 
second_function(**param_dict) 
# Max m