Python按一定顺序从列表中调用函数
我举了以下例子:Python按一定顺序从列表中调用函数,python,function,Python,Function,我举了以下例子: def func1():return 1 def func2():return 2 def func3():return 3 fl = [func1,func2,func3] 我想按一定的顺序调用函数;比如说 func1(),然后是func2(),最后是func3() 或 func2(),然后是func1(),最后是func3() 这是怎么发生的呢?指定所需的索引,并对其进行迭代。请注意,Python中的列表索引是零索引的 def func1():return 1
def func1():return 1
def func2():return 2
def func3():return 3
fl = [func1,func2,func3]
我想按一定的顺序调用函数;比如说
- func1(),然后是func2(),最后是func3()
- func2(),然后是func1(),最后是func3()
这是怎么发生的呢?指定所需的索引,并对其进行迭代。请注意,Python中的列表索引是零索引的
def func1():return 1
def func2():return 2
def func3():return 3
fl = [func1,func2,func3]
indices = [0,1,2,1,0,2]
for i in indices:
fl[i]()
不要将函数放在列表中。改用python程序 如果你真的想让汤姆看看清单就行了
for f in [func1, func2, func3]:
f()
什么决定了顺序?只需在列表中循环,调用每个函数:
[f()代表f in fl()]
[fl[i]()代表i in order]
其中顺序=[2,1,3]
etc@Aran-Fey,它是关于函数调用的年表,第一个func1()…最后一个func3()或任何选定的order@loved_by_Jesus我的坏,0索引,order=[1,0,2]
“不要将函数放在列表中”两个示例中的哪一个以任意顺序调用函数?我从另一个模块以列表形式导入,这就是为什么第一个方法没有。你已经把订单硬编码了。脚本自上而下运行,顺序是固定的。如果这些函数位于列表或字典中,则可以根据一些动态输入以任何顺序执行任意次数的函数。我认为不将函数放在某个容器中的说明是不正确的。或者,澄清一下,有很好的理由将函数放在列表中。我并不是说这是所有情况下的最佳方式,但在一般情况下不应排除这种可能性。我无意中撞到了enter,这正是我要采用的方法suggest@RafaelC,我更新了答案。谢谢你指出这一点!有一个函数列表和一个索引列表有什么意义?其中一个是多余的。那么他可以做:[eval('func{}()'.format(i))for i in index]
@Aran Fey,我用我对OP意图的最佳解释来回答这个问题,即他有一个固定的函数列表,并希望迭代它们。
for f in [func1, func2, func3]:
f()