原文: http://106.13.73.98/__/187/
class A:
def __enter__(self):
"""
该方法在with后面的语句被求值后执行
:return: 该方法的返回值将赋值给as后面的变量,也就是下面的a
"""
print('__enter__')
return self
def __exit__(self, exc_type, exc_val, exc_tb):
"""
这里的__exit__方法只在两种情况下执行:
1.with后面的语句执行完毕后执行
2.with代码块内的语句触发异常时执行
:param exc_type: 异常类型
:param exc_val: 异常信息
:param exc_tb: 回溯对象(一个内存地址)
"""
print('__exit__')
def do_something(self):
print('do_something')
with A() as a:
a.do_something()
print('over')
"""
打印顺序:
__enter__
do_something
__exit__
over
"""
原文: http://106.13.73.98/__/187/
原文地址:https://www.cnblogs.com/gqy02/p/11336331.html
时间: 2024-10-11 10:56:18