Python 3.x 使用字典中的参数调用python函数
我在我的脚本中有一个位置,我要求用户提供一些反馈(选择脚本中的下一个阶段),由于有大量的项目,用户正在根据我将“if-else”部分打包到字典中来做出决定。我可以调用任何“普通”函数,但在很多情况下,我必须调用同一个函数,但带有一些参数,但无法确定如何将这些参数添加到我已经拥有的脚本主体中。看起来是这样的(我将尝试对其进行评论,以便您看到我的问题所在):Python 3.x 使用字典中的参数调用python函数,python-3.x,function,dictionary,arguments,call,Python 3.x,Function,Dictionary,Arguments,Call,我在我的脚本中有一个位置,我要求用户提供一些反馈(选择脚本中的下一个阶段),由于有大量的项目,用户正在根据我将“if-else”部分打包到字典中来做出决定。我可以调用任何“普通”函数,但在很多情况下,我必须调用同一个函数,但带有一些参数,但无法确定如何将这些参数添加到我已经拥有的脚本主体中。看起来是这样的(我将尝试对其进行评论,以便您看到我的问题所在): 谢谢,非常感谢您的帮助。答案很简单-对于需要添加参数的参数,我将其值称为lambda。。。像这样: # say func 2 holds 3
谢谢,非常感谢您的帮助。答案很简单-对于需要添加参数的参数,我将其值称为lambda。。。像这样:
# say func 2 holds 3 arguments
options = {
'1': func1,
'2': lambda: func2(arg1, arg2, arg3),
'3': func3,
'etc': funcetc,
'n': funcn}
这是一个非常简单的解决方案,functools模块为您提供了操作函数的方法,包括允许您将参数部分传递给函数,例如:
import functools
options = {
...
'2': functools.partial(fn, arg1, arg2, arg3)
...
}
看来我终于找到了解决办法:我不知道,谢谢。我还在学习,functools甚至不在我的列表“现在需要知道”中:-)实际上不是比lambda解决方案更好吗?(无需导入,语法更简单)
import functools
options = {
...
'2': functools.partial(fn, arg1, arg2, arg3)
...
}