Dav*_*log 10 python function list
我想将函数存储在一个列表中,然后在程序中从该列表调用这些函数。
这对我有用,但是,我不知道它是否正确:
#example functions, my functions would actually get user input etc.
def func1():
return 2
def func2():
return 3
options = [ func1, func2 ]
#call functions
options[0]()
Run Code Online (Sandbox Code Playgroud)
这是将函数存储在列表中并调用它的正确方法吗?或者有没有其他更好的方法来做到这一点?
是的,你可以做到。如果您想使用“one liner”调用列表中的所有函数,您可以执行以下操作:
results = [f() for f in options]
Run Code Online (Sandbox Code Playgroud)
是的,这是正确的,但如果您的函数本质上确实是单行的,我建议您也看看lambdas,以便您的整个代码可以简化为:
options = [lambda: 3, lambda: 2]
Run Code Online (Sandbox Code Playgroud)
正如评论中已经指出的那样,您当然需要记住列表中函数的顺序。