给出了一组签名不同的函数,以及一个包含每个必需参数的(键,值)对的字典,我想找到一种优雅的方式将字典传递给每个函数,以便每个函数可以使用其所需功能中的参数。
def first_function(name, age):
print(name, " ", age)
def second_function(name, gender):
print(name, " ", gender)
param_dict = {'name': 'Max', 'age': 23, 'gender':'m'}
通过指定param_dict
将second_function(**param_dict)
传递给函数会引发错误,因为这三个函数都不要求函数。是否有一个优雅的解决方案,例如每个函数都“提取”所需的参数?
答案 0 :(得分:6)
您可以简单地将**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