+ 我要发布
我发布的 我的标签 发现
浏览器扩展
斑点象@Edge

Python - Context Manager 上下文管理器

**什么是上下文管理器** 上下文管理器是一个对象,它定义了在执行 with 语句时要建立的运行时上下文,上下文管理器处理进入和退出所需的运行时上下文以执行代码块,上下文管理器通常使用 with 语句调用,但也可以通过直接调用它们的实例方法来使用。 同时包含 __enter__() 和 __exit__() 方法的对象就是上下文管理器。 **__enter__(self)** 进入上下文管理器自动调用的方法 该方法会在 with ... as ... 代码块执行之前执行 如果 with 语句有 as 子句,且该方法有返回值,那么该方法的返回值会被赋值给 as 子句后的变量,最常见的 with open('file_path', 'w') as file: 该方法可以返回多个值,因此在 as 子句后面也可以指定多个变量(多个变量必须由“()”括起来组成元组) **__exit__(self, exc_type, exc_value, exc_traceback)** 退出上下文管理器自动调用的方法,会返回一个布尔类型的值 该方法会在 with ... as ... 代码块执行之后执行 如果 with ... as ... 代码块成功执行结束,程序自动调用该方法,且三个参数都为 None 如果 with ... as ... 代码块执行时发生异常,通过 sys.exc_info() 得到异常信息,三个参数值分别是:异常类型、异常信息、异常回溯信息类型