源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Python with用法实例

  • 时间:2022-03-21 18:37 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Python with用法实例
python中with可以明显改进代码友好度,比如:
[u]复制代码[/u] 代码如下:
with open('a.txt') as f:      print f.readlines() 
为了我们自己的类也可以使用with, 只要给这个类增加两个函数__enter__, __exit__即可:
[u]复制代码[/u] 代码如下:
>>> 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:
[u]复制代码[/u] 代码如下:
>>> 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 用处不大
[u]复制代码[/u] 代码如下:
from contextlib import closing  import urllib    with closing(urllib.urlopen('http://www.python.org')) as page:      for line in page:          print line 
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部