一文读懂 with ... as 语句的来龙去脉
说到 with 大家通常看到的应该是这样的:
示例 1
with open('courses.txt') as f:
for i in f:
print(i.strip())
打开一个文件,然后循环做一些事情。但是你知道为什么会有 with 吗?我们自己是不是能够写出可以作用在 with 关键字上的对象呢?
现在,我们带着上述两个问题来说一说 with 的由来以及上下文管理器相关内容。
with 语句的目的是简化 try/finally 模式。这种模式用于保证一段代码运行完毕后执行某项操作,即便那段代码由于异常、return 语句或sys.exit() 调用而中止,也会执行指定的操作。finally 子句中的代码通常用于释放重要的资源,或者还原临时变更的状态。
示例1的功能我们可以使用 try/finally 模式实