Python中的上下文管理器,是Python的异常处理机制中的一部分。它允许你在一段代码的开头和结尾之间建立一种关联,以确保在代码执行完毕后进行一些清理工作,比如关闭文件、断开网络连接等。
在Python中,你可以使用with
关键字和一个实现了__enter__
和__exit__
方法的对象来创建一个上下文管理器。
class FileManager: def __init__(self, filename): self.filename = filename self.file = None def __enter__(self): self.file = open(self.filename, 'r') return self.file def __exit__(self, exc_type, exc_val, exc_tb): self.file.close() with FileManager('example.txt') as file: content = file.read() print(content)class TestUtil():def __init__(self, params):print "init: %s" % paramsdef __enter__(self):print "code operation"def __exit__(self, exc_type, exc_val, exc_tb):print "auto exit"with TestUtil("arg1") as t:print "end"print 111
TestUtil执行结果,可看出__exit__方法在离开with块时调用