Python with用法实例
Python with用法实例
发布时间:2016-12-28 来源:查字典编辑
摘要:python中with可以明显改进代码友好度,比如:复制代码代码如下:withopen('a.txt')asf:printf.readlin...

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学习
脚本专栏子分类