关于   小悟志   栏目   标签   文章   归档   友链

   云上小悟  +  

优雅地使用Python的with as语句

InfoTech / by: 麦新杰 / 发布:2017年1月21日 / 13次阅读 / 暂无评论
标签:我用Python   / 最后修改时间: 2017-01-22 08:44:32

InfoTech / 2017年1月21日 / 13次阅读 / 标签:我用Python  

拍拍贷
featured image

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)

《优雅地使用Python的with as语句》暂无评论

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

云上小悟独立博客网站文章内容,除非特别注明,全部都是原创(非原创请阅读本站版权声明),如需转载,请保留文章链接!原创文章更具个性,有些文字虽略显随意,但不影响个人思想表达。部分文章是我自己的笔记,为自己记录,总结和收藏,同时也分享给您!这是本博建设的出发点,希望您喜欢并得到您的支持!

©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有  备案号:苏ICP备14045477号-1  economists.cn的备案号:苏ICP备14045477号-3    联系我们

云上小悟,麦新杰的独立博客