首页 > 解决方案 > 如何迭代具有不同数量参数的函数

问题描述

我想迭代存储在字典中的许多函数:

function_dict = {'func_a': partial(func_a),
                 'func_b': partial(func_b)}

为简单起见,假设这些功能是:

def func_a(x,y):
    return x + y

def func_b(x):
    return x**2

事实上,这些函数是外部库的一部分,所以我无法修改它们。

我希望能够遍历所有这些。但是,在接收 1func_a个参数时func_b接收 2 个参数。

我想做以下事情:

x = 2
y = 5

for key, func in function_dict.items():
    
    if (key=='func_a'):

        print( (func)(x,y) )

    if (key=='func_b'):

        print( (func)(x) )

产生

7
4

在这个循环中,我使用了 if 语句来查看即将出现的函数并使用适当数量的参数。但是如果function_dict.

我怎样才能标准化它,以便我可以遍历字典中的所有函数并为每个函数选择正确数量的参数?

提前谢谢了。

标签: pythonfunctiondictionaryargumentspartial

解决方案


推荐阅读