上下文管理

Python 中的 with 语句与上下文管理器

血红的双手。 提交于 2020-03-02 01:28:34
对象,是 Python 对数据的抽象概念。Python 中的所有数据都是以对象或对象间的关系来实现的。(某种意义上,代码也是由对象来实现的,这与冯·诺依曼的“stored program computer”模型相一致)。每个对象都有 id、type、和 value。对象的 id 从创建之时起就不再改变,你可以把它想象成对象在内存中的地址。is 运算符就是比较的两个对象的 id,或者你也可以通过内建的 id() 函数来直接查看。 正文: with 语句 with 语句是被设计用来简化“try / finally”语句的。通常的用处在于共享资源的获取和释放,比如文件、数据库和线程资源。它的用法如下: with context_exp [as var]: with_suit with 语句也是复合语句的一种,就像 if、try 一样,它的后面也有个“:”,并且紧跟一个缩进的代码块 with_suit。context_exp 表达式的作用是提供一个上下文管理器(Context Manager),整个 with_suit 代码块都是在这个上下文管理器的运行环境下执行的。context_exp 可以直接是一个上下文管理器的引用,也可以是一句可执行的表达式,with 语句会自动执行这个表达式以获得上下文管理对象。with 语句的实际执行流程是这样的: 执行 context_exp