将选定的自变量从字典传递给函数

Dri*_*zel 1 python dictionary function

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

def first_function(name, age):
    print(name, " ", age)

def second_function(name, gender):
    print(name, " ", gender)

param_dict = {'name': 'Max', 'age': 23, 'gender':'m'}
Run Code Online (Sandbox Code Playgroud)

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

C.N*_*ivs 6

您可以简单地通过**kwargs第三个arg来解决此问题,因为它将消耗字典中所需的内容,其余的将保留在kwargsdict中:

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
Run Code Online (Sandbox Code Playgroud)