多个with
我们在写项目的时候可能会遇到如下的用法
with A() as a, with B() as b:
body
他实质上等价于
with A() as a:
with B() as b:
body
文件自动关闭
打开文件
- 一般我们打开文件有两种方法
- 直接打开,但是这个打开的方法需要我们自己调用f.close()关闭
f = open()
- 使用with打开,无论是否报错他自己就会关闭文件
with open() as f:
pass
这个原因是因为open()函数返回一个上下文管理对象,而对象的__exit__
方法有关闭文件的操作,所以我们不必手动关闭文件。关于with的执行顺序点击