Python中的类级别返回/退出

时间:2010-02-24 15:21:51

标签: python

在我的应用程序中,我有一个循环,在每个回合中创建一个执行某些操作的类的实例。在这个类中,我有一个信号计时器,当被调用时,它应该优雅地退出循环中的当前转弯,并允许下一个操作继续而不会中断。

在它的当前状态下,它会引发一个异常,它应该被try-except-block捕获。但是我有一个“loadFinished”信号(我不知道id),在抛出异常后调用它并导致我无法捕获的函数定义的运行时异常。

有没有办法做一个类级别的返回,如果出现问题就可以结束一个函数?或者某种sys.exit()只能在类上运行?

我希望自己清楚明白。 :)谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

如果您正在讨论signal module中的信号,则不会以标准方式调用处理程序。

您不能抛出异常,并希望它出现在您的普通代码中。实际上,您应该尝试在处理程序中尽可能少地做 - 设置全局标志,或者在管道上发送消息。

答案 1 :(得分:1)

克里斯托弗,

使用TimerEvent类更适合您。您可以在循环中检查要设置的事件,然后退出当前迭代:

if my_event.isSet():
    continue

我认为你要做的并不是一个好的设计。我认为没有办法将异常“抛出”到另一个函数中。我假设你的意思是异步函数调用。这当然也可以设置上面提到的事件。