所以我的问题是这样的:我正在运行一个while循环,每次将执行Function1,仅当它们各自的标志设置为True时才执行Function2和Function3,并且我希望能够 alter这些标志在循环运行时。
while brkFlag == False:
Function1.run()
if flag2 == True:
Function2.run()
else:
pass
if flag3 == True:
Function3.run()
else:
pass
if someConditions == True:
brkFlag = True
目前,我想在循环运行时使用GUI更改这些标志,并尝试使用tkinter的Buttons和Checkboxes来完成此操作,但到目前为止还没有运气。
我也不能使用多线程或多处理,因为它们会大大降低循环速度(目前已经几乎不能接受,因为每个函数中都有很多计算,因此我需要显示实时生成)。
编辑:因此看来,除了进行多线程/处理外,别无选择。
答案 0 :(得分:0)
一种简单的方法是传递一个包含标志的可变容器,例如一个列表:
flags = [flag2, flag3, someConditions ]
while brkFlag == False:
Function1.run(flags)
if flags[0] == True:
Function2.run(flags)
else:
pass
if flags[1] == True:
Function3.run(flags)
else:
pass
if someConditions == True: # or if flags[2] == True:
brkFlag = True
在被调用方中,您或多或少地实现了
...
def run(flags):
...
flags[0] = True # set flag2
...