快速举例:
def func_1():
func_2()
def func_2():
func_3()
def func_3():
#Finds condition to end all calculations and break of out all functions
func_1()
我有一些代码,其中的函数运行其他函数运行其他函数,这些函数一起耗费大量时间进行音频计算。我有一个“停止测试”tkinter按钮,我想停止所有测试,但为了实现这一点,所有功能都被打破了。有快速的方法吗?要检查停止条件,需要加载IF语句,因为在计算过程中可以随时设置停止条件。
答案 0 :(得分:1)
您可以使用Python的内置异常机制来执行此操作。如果你打算走这条路,我推荐一个定制的,有名的例外。
class JumpToMainLoop(Exception):
pass
def func_1():
func_2()
def func_2():
func_3()
def func_3():
raise JumpToMainLoop
try:
func_1()
except JumpToMainLoop:
pass
使用内置异常(如ValueError
)或更糟糕的一般异常(如Exception
)是不可取的,因为其他可能出错的内容会被{{1 }}
答案 1 :(得分:0)
您可以使用例外
def func_1():
func_2()
def func_2():
func_3()
def func_3():
if condition:
raise Exception('something happened')
try:
func_1()
except Exception:
pass