python的上下文管理/程序运行监控/检测中断方法
在python类中实现了__enter__和__exit__方法,即支持上下文管理器协议。上下文管理器就是支持上下文管理器协议的对象,它是为了with而生。
当with语句在开始运行时,会在上下文管理器对象上调用 __enter__ 方法。with语句运行结束后,会在上下文管理器对象上调用 __exit__ 方法。
格式如下:
with EXPR as VAR:
BLOCK
例1:
with open('1.txt', 'w+') as f:
f.write(str(1))
EXPR= open('1.txt', 'w+')
VAR= f
BLOCK= f.write(str(1))
with语句开始时,先调用__enter__ 方法
with语句结束后,会调用__exit__方法, 即关闭文件,__exit__等价于f.close()
例2:
class MyWith:
def __init__(self, filename):
self.filename=filename
print("__init__")
def __enter__(self):
self.f = open(self.filename, 'w+')
print("__enter__")
return self.f
def write(se