登录 | 注册
Arthur的随笔
The More I Learn, The Less I Know, Tracking Mind Only With Code
目录视图
摘要视图
订阅
Rust开发技术学习路线 专家亲授Hadoop技术,你报名了吗? 【极客头条】动动手,写一篇文章就好 CSDN移动客户端,下载送50C币
python with用法
分类: python2011-10-27 13:28 35895人阅读 评论(5) 收藏 举报
pythonimportexceptionclass
python中with可以明显改进代码友好度,比如:
[python] view plaincopyprint?
with open('a.txt') as f:
print f.readlines()
为了我们自己的类也可以使用with, 只要给这个类增加两个函数__enter__, __exit__即可:
[python] view plaincopyprint?
>>> 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:
[python] view plaincopyprint?
>>> 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 用处不大
[python] view plaincopyprint?
from contextlib import closing
import urllib
with closing(urllib.urlopen('http://www.python.org')) as page:
for line in page:
print line
版权声明:本文为博主原创文章,未经博主允许不得转载。
上一篇jstree 点箭头有效但点后面item无效的bug
下一篇ajax readystate
主题推荐
python函数classpreclassas
猜你在找
Python自动化开发基础 多线程\多进程\及主机管理 day7
Excel2013函数实战职场培训视频教程
零基础学Python开发系列教程
QuickTest Professional深入剖析--【上部】
零基础学HTML 5实战开发(第一季)
浅谈 Python 的 with 语句
python 模块大全
Python标准库非常经典的各种模块介绍
python 模块大全
Python标准库非常经典的各种模块介绍
准备好了么? 跳吧 !更多职位尽在 CSDN JOB
资深Python/PHP
上海并友网络技术有限公司
|
12-20K/月
我要跳槽
Python后端开发工程师
北京天使汇金融信息服务有限公司
|
10-20K/月
我要跳槽
Python工程师
北京爱奇艺科技有限公司
|
13-20K/月
我要跳槽
python开发工程师
北京顺顺必达信息咨询有限公司
|
15-20K/月
我要跳槽
查看评论
您还没有登录,请[登录]或[注册]
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
核心技术类目
全部主题 Hadoop AWS 移动游戏 Java Android iOS Swift 智能硬件 Docker OpenStack ××× Spark ERP IE10Eclipse CRM JavaScript 数据库 Ubuntu NFC WAP jQuery BI HTML5 Spring Apache .NET API HTML SDK IISFedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTCcoremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech PerlTornado Ruby Hibernate ThinkPHP HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap
个人资料
访问:266904次
积分:3905
等级:
排名:第3806名
原创:137篇
转载:16篇
译文:2篇
评论:46条
文章搜索
文章分类
django(16)
python(56)
linux(42)
杂七杂八(69)
hadoop(5)
haskell(3)
ruby(4)
algorithm(11)
design pattern(2)
R&datamine(6)
NLP(3)
java(1)
文章存档
2015年01月(2)
2014年12月(1)
2014年01月(2)
2013年12月(2)
2013年11月(2)
2013年10月(2)
2013年09月(2)
2013年08月(3)
2013年07月(1)
2013年06月(4)
2013年05月(1)
2013年04月(7)
2013年03月(3)
2013年02月(2)
2013年01月(3)
2012年12月(10)
2012年11月(1)
2012年09月(2)
2012年08月(3)
2012年07月(3)
2012年06月(3)
2012年05月(7)
2012年04月(8)
2012年03月(6)
2012年02月(6)
2012年01月(6)
2011年12月(11)
2011年11月(11)
2011年10月(6)
2011年09月(7)
2011年08月(6)
2011年07月(6)
2011年06月(6)
2011年05月(2)
2011年04月(1)
2011年02月(1)
2010年12月(1)
2010年09月(1)
2010年08月(3)
2010年07月(1)
阅读排行
python with用法(35888)
ab "apr_socket_recv: Connection reset by peer" 错误解决(8273)
ubuntu配置ntp服务器(6648)
git merge和rebase的区别(6527)
mysql HA方案: MHA(6443)
gensim试用(6280)
svn结合git一起使用(5885)
python itertools模块学习(5514)
关于Sentry(5255)
python string hash 函数(4919)
评论排行
python with用法(5)
ab "apr_socket_recv: Connection reset by peer" 错误解决(4)
python源码查找子串(3)
git merge和rebase的区别(3)
beautiful python(3)
epoll学习笔记(3)
关于Sentry(3)
datrie中文支持不够?(2)
tcp通信:多进程共享listen socket方式(2)
wordpress中保存明文密码(2)
推荐文章
最新评论
python with用法
飞越蓝天的云: 还不错!刚刚用过!
wordpress中保存明文密码
largetalk: @longlongagoTears:是4.0
wordpress中保存明文密码
_tears_: 你这是那个版本呀?我测试4.1 和 3.8 都不行,怎么回事???
svn "local edit, incoming delete upon update" problem fix method
lunar1983: 这个办法可行,谢谢~~~
datrie中文支持不够?
xltytlive: 测试OK,非常感谢
mysql HA方案: MHA
perlove6: 你好,有个问题不明白,在“在备选master和slave节点 crontab -e 添加计划任务”,...
gensim试用
1000sprites: all_tokens = sum(texts, []),这句话没有报错吗?
对数步计算斐波那契数列
杰Tang_fighting: @frank_cg:计算机程序的构造和解释练习题1.19
svn结合git一起使用
霜之咏叹调: 哥们,你还在吗?我首先尝试使用git-svn了,但是公司的svn权限很扯淡,没法用。最后考虑用你的方...
python with用法
OuZhengguang: 主要是yield在这里的作用
公司简介|招贤纳士|广告服务|银行汇款帐号|联系方式|版权声明|法律顾问|问题报告|合作伙伴|论坛反馈
网站客服杂志客服微博客服[email protected]400-600-2320|北京创新乐知信息技术有限公司 版权所有|江苏乐知网络技术有限公司 提供商务支持
京 ICP 证 070598 号|Copyright 1999-2014, CSDN.NET, All Rights Reserved