Python with用法实例


Posted in Python onApril 14, 2015

python中with可以明显改进代码友好度,比如:

with open('a.txt') as f:  

    print f.readlines() 

为了我们自己的类也可以使用with, 只要给这个类增加两个函数__enter__, __exit__即可:
>>> class A:  

    def __enter__(self):  

        print 'in enter'  

    def __exit__(self, e_t, e_v, t_b):  

        print 'in exit'  

  

>>> with A() as a:  

    print 'in with'  

  

in enter  

in with  

in exit 

另外python库中还有一个模块contextlib,使你不用构造含有__enter__, __exit__的类就可以使用with:
>>> from contextlib import contextmanager  

>>> from __future__ import with_statement  

>>> @contextmanager  

... def context():  

...     print 'entering the zone'  

...     try:  

...         yield  

...     except Exception, e:  

...         print 'with an error %s'%e  

...         raise e  

...     else:  

...         print 'with no error'  

...  

>>> with context():  

...     print '----in context call------'  

...  

entering the zone  

----in context call------  

with no error 

使用的最多的就是这个contextmanager, 另外还有一个closing 用处不大
from contextlib import closing  

import urllib  

  

with closing(urllib.urlopen('http://www.python.org')) as page:  

    for line in page:  

        print line 
Python 相关文章推荐
python代码制作configure文件示例
Jul 28 Python
在Python中处理日期和时间的基本知识点整理汇总
May 22 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
May 25 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
Jun 27 Python
Python编程把二叉树打印成多行代码
Jan 04 Python
使用python爬取B站千万级数据
Jun 08 Python
在自动化中用python实现键盘操作的方法详解
Jul 19 Python
pytorch 改变tensor尺寸的实现
Jan 03 Python
python 异步async库的使用说明
May 04 Python
python实现mask矩阵示例(根据列表所给元素)
Jul 30 Python
Python的scikit-image模块实例讲解
Dec 30 Python
python实现剪贴板的操作
Jul 01 Python
详细探究Python中的字典容器
Apr 14 #Python
Python中decorator使用实例
Apr 14 #Python
用Python创建声明性迷你语言的教程
Apr 13 #Python
Python中的Numeric包和Numarray包使用教程
Apr 13 #Python
Python中一些自然语言工具的使用的入门教程
Apr 13 #Python
用Python的SimPy库简化复杂的编程模型的介绍
Apr 13 #Python
Python中用Decorator来简化元编程的教程
Apr 13 #Python
You might like
php curl的深入解析
2013/06/02 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
2020/03/23 PHP
JQuery Study Notes 学习笔记(一)
2010/08/04 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
jquery中获得元素尺寸和坐标的方法整理
2014/05/18 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
vue.js计算属性computed用法实例分析
2018/07/06 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
vue+ts下对axios的封装实现
2020/02/18 Javascript
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
Python实现的快速排序算法详解
2017/08/01 Python
对Python中class和instance以及self的用法详解
2019/06/26 Python
给我一面国旗 python帮你实现
2019/09/30 Python
Python通过4种方式实现进程数据通信
2020/03/12 Python
python 负数取模运算实例
2020/06/03 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
大学生创业计划书的用途
2014/01/08 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
企业管理标语
2014/06/10 职场文书
教师节倡议书
2014/08/30 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
大学生英文求职信范文
2015/03/19 职场文书
务工证明怎么写
2015/06/18 职场文书