【发布时间】:2014-02-11 10:17:17
【问题描述】:
我在下面的类中使用 with 语句。
def __init__(self):
...
def __enter__(self):
return self
def __exit__(self, type, value, traceback):
print "EXIT Shutting the SDK down"
ret = self.sdkobject.ShutDown()
self.error_check(ret)
这会捕获在我使用类的对象时发生的任何错误,并安全地关闭我正在使用的 SDK。但是,当类仍在初始化时,它会发现问题。我最近发现了巧妙地解决这个问题的“del”函数。但是,它不能与 exit 函数一起使用(因为 with 语句会调用 exit 并且 del 会引发异常)。如何使用 with statemtent 设置析构函数,即使在初始化期间也会捕获失败?
【问题讨论】:
-
你的意思是
__init__中的异常也需要触发关机?
标签: python destructor init with-statement