关于   小悟志   网站地图   归档   友情链接   联系   Feed

   云上小悟  +  

优雅地使用Python的with as语句

2017年1月21日 / 45次阅读  InfoTech
标签:麦新杰用Python

拍拍贷

文章《优雅地使用Python的with as语句》的特色图片

Python从2.5版本开始支持with as语句,我们也称之为上下文管理器(context manager)。

 

来看一段docstring:

解释的蛮清楚的。

使用with as语句打开一个文件进行操作,无论发生什么情况,这个文件都会保证执行close动作(with as代码块发生异常,return,continue,break)。

江湖上说,使用with as语句写出来的Python代码,很优雅!

 

使用with as的原理是:

with 语句包裹起来的代码块,在执行语句体之前会调用上下文管理器的 __enter__() 方法,执行完语句体之后会执行 __exit__() 方法。

上下文管理器(Context Manager):支持上下文管理协议的对象,这种对象实现了__enter__() 和 __exit__() 方法。上下文管理器定义执行 with 语句时要建立的运行时上下文,负责执行 with 语句块上下文中的进入与退出操作。通常使用 with 语句调用上下文管理器。

 

file对象就是一个context manager!

但是,使用with as还是有可能抛出异常,打开文件操作正确的写法是:

 

还有以一种情况,文件打开之后要执行的操作不能放在一个连续的代码快中,这时,就只能直接使用open打开,记得自己在逻辑的最后close。

本文链接:http://www.maixj.net/ict/python-with-as-14005
云上小悟 麦新杰(QQ:1093023102)

-- (*^-^*) --

相关文章

评论是美德

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.


前一篇:
后一篇:

栏目精选


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号苏ICP备14045477号-1

网站二维码
拍拍贷
go to top