有没有办法停止执行已执行的代码?

时间:2019-03-28 09:01:53

标签: python exec

我有一个程序可以通过exec运算符即时执行代码。

是否有一种方法可以像使用return那样使用函数来停止使用一个运算符执行代码?

我尝试使用returnbreak,但是没有运气。

condition = True

my_code = """
print ("foo")
if condition: 
    return # this is not working
print ("bar")
"""

exec(my_code)

对此的可能解决方案是将条件块加深一个缩进量。

my_code = """
print ("foo")
if not condition: 
    print ("bar")
"""

但是,这在我看来并不整洁。尤其是在执行的代码中有多个端点的情况下。

1 个答案:

答案 0 :(得分:-1)

您可以继承Exception的子类:

class StopExec(Exception):
    pass

要退出raise StopExec代码块,请在代码中使用exec