我有一个功能列表,需要很长时间才能执行每个功能。我想编写一个执行所有这些函数的循环,但是在每个函数之后它重新检查我已经放置的标记条件以突破循环。这是为了节省时间,如果需要。
例如,如果我有从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()
我这样做是因为一旦按下按钮,我就无法使中断功能正常工作以突破执行代码。
感谢您的帮助
答案 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()