由于__del __()方法的不稳定情况 调用时,忽略执行期间发生的异常,并且 警告将打印到sys.stderr而不是
完全绝对忽略__del __()中引发的异常的最Pythonic方法是什么 - 也就是说,不仅忽略了异常,而且没有打印到sterr 。有没有比暂时将stderr重定向到空设备更好的方法?
答案 0 :(得分:6)
我假设这是在你正在编写的__del__()
函数中,如果是这样,只需自己捕获异常并忽略它。
def __del__(self):
try:
# do whatever you need to here
except Exception:
pass
登录到stderr仅适用于__del__()
中未捕获的例外。
答案 1 :(得分:3)
只需在try
内使用except
/ __del__()
:
def __del__(self):
try:
# ...
except:
pass
这将捕获所有异常并且不会打印任何内容。
答案 2 :(得分:2)
只需使用try / except块:
def __del__(self):
try:
something_that_might_throw()
except:
pass