处理异常后从类中退出python
我有一门课,像:处理异常后从类中退出python,python,Python,我有一门课,像: class TestClass(object): def __init__(self, *args): try: ## check some condition except: return ## Should exit class def do_something_else(self): ... def return_somet
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()
现在我试着这样称呼这个班:
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()
当我执行第一个命令时,我的条件失败并引发异常。
我想要的是,如果在uuu init uuu函数中发生异常,则不应调用dou something方法,并且控制流应转到第二个命令
在第二个命令中,满足所有条件,并且应该调用return_something函数
我怎样才能做到这一点呢?也许我错了,但我还是简单一点,使用一个标志变量,这样做:
class TestClass(object):
def __init__(self, *args):
self.flag=False
try:
## check some condition
except:
self.flag=True
def do_something_else(self):
if self.flag:
#do what you want, e.g. call a second command
return
...
def return_something(self):
## return something
您只需创建TestClass类的对象,并从try块返回True,从except块返回False。检查该值是否为True或Flase,并执行所需的函数。
创建一个对象将自动triiger init方法,并根据您的条件返回true或false。检查返回的值以决定是否执行所需的方法。我建议您在单独的函数中而不是在构造函数中处理异常情况 而不是
TestClass(arg1, arg2, ..).do_something_else()
做
并从init方法中删除try/except语句。
. 这听起来像是一个错误。你没有退出一个类——你到底想做什么?我有一个分布式任务队列芹菜,在其中调用这个函数。我想最小化芹菜中的错误日志,并将错误存储在数据库日志中。这就是为什么在初始化类时,如果不满足条件,我希望将错误详细信息存储在数据库日志中并退出该类。有些方法返回数据,而有些方法只处理其他数据。否则,我会从uu init uuu函数调用函数。不清楚你的意思。此外,init必须始终返回None。我的答案与本文中的第一个答案有些相似。但我不确定init是否必须始终返回“None”。先生,你能再澄清一点吗?