详解with如何处理异常。
class Sample:
def __enter__(self): # __enter__方法首先执行。后返回值给with
return self
def __exit__(self, type, value, trace):# 第四步: 无论第三步是否有异常,均执行代码块。
print ("type:", type)
print ("value:", value)
print ("trace:", trace)
def do_something(self):# 第三步:执行代码块
bar = (1/0)
return bar + 10
with Sample() as sample: # 第二步:sample接收值并调用do_something方法
sample.do_something()