gpt4 book ai didi

python - 根据参数选择要执行的函数 - 它的名称

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:31 25 4
gpt4 key购买 nike

我有不同的函数,但每个函数都有不同数量的参数和不同的参数。我希望能够只执行其中一个,并根据函数名称作为字符串来执行此操作。我试过这个:

def execute_function(function_name, arg1, arg2, arg3):
return {
'func1': func1(arg1),
'func2': func2(arg1, arg3),
'func3': func3(arg2),
}[function_name]

但它执行所有函数 :( 无论字符串 function_name 是什么。

您是否知道为什么会发生这种情况以及如何实现我想要的。 (我是 Python 的新手)。非常感谢您! :)

最佳答案

您需要将只是函数 添加到字典中;你添加了他们的结果

要支持可变参数,请使用 lambda 或 functools.partial()改为包装您的函数:

def execute_function(function_name, arg1, arg2, arg3):
return {
'func1': lambda: func1(arg1),
'func2': lambda: func2(arg1, arg3),
'func3': lambda: func3(arg2),
}[function_name]()

from functools import partial

def execute_function(function_name, arg1, arg2, arg3):
return {
'func1': partial(func1, arg1),
'func2': partial(func2, arg1, arg3),
'func3': partial(func3, arg2),
}[function_name]()

在这两种情况下,您都可以调用结果对象(partiallambda 函数)从字典中检索它之后。

关于python - 根据参数选择要执行的函数 - 它的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23131594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com