Python 的 with 语句
With语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后关闭,线程中锁的获取和释放等。 术语 介绍一组与上下文管理器和with语句有关的概念。 上下文管理协议(Context Management Protocol) :包含方法 __enter__() 和 __exit__() ,支持该协议的对象要实现这两个方法。 上下文管理器(Context Manager) :支持上下文管理协议的对象,定义执行with语句时要建立的运行时上下文,负责执行with语句块上下文中的进入与退出操作。 运行时上下文(Runtime Context) :由上下文管理器创建,通过上下文管理器的 __enter__() 和 __exit__() 方法实现。 __enter__() 方法在语句体执行之前进入运行时上下文; __exit__() 在语句体执行完后从运行时上下文退出。 上下文表达式(Context Expression) :with语句中关键字with的表达式,返回一个上下文管理器对象 语句体(With-Body) :with语句下的代码块,在执行语句体之前会调用上下文管理器的 __enter__() 方法,执行完语句体之后会执行 __exit__() 方法。 基本语法 with语句的语法格式如下: with context