继续对一系列功能进行状态检查

时间:2015-10-30 09:17:20

标签: python

我有一个功能列表,需要很长时间才能执行每个功能。我想编写一个执行所有这些函数的循环,但是在每个函数之后它重新检查我已经放置的标记条件以突破循环。这是为了节省时间,如果需要。

例如,如果我有从A到D的功能,

while flag==0:
    A()
    B()
    C()
    D()

我是否可以在执行A之后重新检查以查看flag == 0。我试着不写它,

if flag==0:
    A()
if flag==0:
    B()
if flag==0:
    C()
if flag==0:
    D()

我这样做是因为一旦按下按钮,我就无法使中断功能正常工作以突破执行代码。

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

如果函数没有参数,则可以创建函数列表,因为函数是第一类对象: -

my_functions = [A, B, C, D]

for function in my_functions:
    while flag == 0:
        function()

如果函数需要一些参数,那么你需要专门使用lambda的

my_functions = [lambda : A(1, 2), lambda : B(3, 2) ...]

for function in my_functions:
    while flag == 0:
        function()

答案 1 :(得分:2)

这样的东西?

for f in (A, B, C, D):
    if flag == 0:
        f()