Python的'with'语句,我应该使用contextlib.closing吗?
- 论坛
- Python的'with'语句,我应该使用contextlib.closing吗?
9 浏览
Python的'with'语句,我应该使用contextlib.closing吗?
这是来自flask教程第三步:
from contextlib import closing def init_db(): with closing(connect_db()) as db: with app.open_resource('schema.sql') as f: db.cursor().executescript(f.read()) db.commit()
关于第4行,我必须导入并调用'contextlib.closing()'吗?
当我学习到with
语句时,很多文章说它会在处理完后自动关闭文件,就像下面这样(与Finally一样:thing.close()
)
with open('filename','w') as f: f.write(someString);
即使我不使用contextlib.closing()
,像下面这样,有什么区别吗?
这是2.7.6版本的,谢谢。
def init_db(): with connect_db() as db: with app.open_resource('schema.sql') as f: db.cursor().executescript(f.read()) db.commit()