【发布时间】:2017-05-05 10:15:57
【问题描述】:
我有这样的课:
class TestClass(object):
def __init__(self, *args):
try:
## check some condition
except:
return
## Should exit class
def do_something_else(self):
...
def return_something(self):
## return something
现在我正在尝试像这样调用类:
TestClass(arg1, arg2, ..).do_something_else()
somthing = TestClass(arg1, arg2, ..).return_something()
当我执行第一个命令时,我的条件失败并引发异常。
我想要的是,如果 __init__ 函数中发生一些异常,则不应调用 do_something_method 并且控制流应该转到第二个命令。
在第二个命令中,所有条件都满足,应该调用return_something函数。
我怎样才能做到这一点?
【问题讨论】:
-
这听起来像XY problem。你没有“退出”一门课程——你实际上想做什么?
-
我有一个分布式任务队列(芹菜),其中调用了这个函数。我想最小化 celery 中的错误日志并将错误存储在数据库日志中。这就是为什么在不满足条件的情况下初始化类时,我想将错误详细信息存储在我的数据库日志中并退出类。有一些方法返回数据,而另一些方法只处理一些其他数据。否则,我会从
__init__函数中调用函数。
标签: python