带有一个“项目”的 语句的执行过程如下:

    • 对上下文表达式 (在 with_item 中给出的表达式) 求值以获得一个上下文管理器。

    • 载入上下文管理器的 以便后续使用。

    注解

    with 语句会保证如果 方法返回时未发生错误,则 exit() 将总是被调用。 因此,如果在对目标列表赋值期间发生错误,则会将其视为在语句体内部发生的错误。 参见下面的第 6 步。

    • 执行语句体。

    如果语句体由于异常以外的任何原因退出,则来自 的返回值会被忽略,并会在该类退出正常的发生位置继续执行。

    如果有多个项目,则会视作存在多个 with 语句嵌套来处理多个上下文管理器:

    等价于

    在 3.1 版更改: 支持多个上下文表达式。

    • - "with" 语句
    • Python with 语句的规范描述、背景和示例。