【问题标题】:Passing selected arguments from a dictionary to a function将选定的参数从字典传递给函数
【发布时间】:2019-06-19 19:04:57
【问题描述】:

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

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 传递给函数会引发错误,因为这两个函数都不需要所有三个参数。有没有一个优雅的解决方案,让每个函数都“提取”它需要的参数?

【问题讨论】:

    标签: python function dictionary


    【解决方案1】:

    您可以简单地将**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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-14
      • 2010-09-24
      • 2017-10-01
      • 2023-03-26
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多