Python with用法实例
python中with可以明显改进代码友好度,比如:
withopen('a.txt')asf:
printf.readlines()
为了我们自己的类也可以使用with,只要给这个类增加两个函数__enter__,__exit__即可:
>>>classA:
def__enter__(self):
print'inenter'
def__exit__(self,e_t,e_v,t_b):
print'inexit'
>>>withA()asa:
print'inwith'
inenter
inwith
inexit
另外python库中还有一个模块contextlib,使你不用构造含有__enter__,__exit__的类就可以使用with:
>>>fromcontextlibimportcontextmanager >>>from__future__importwith_statement >>>@contextmanager ...defcontext(): ... print'enteringthezone' ... try: ... yield ... exceptException,e: ... print'withanerror%s'%e ... raisee ... else: ... print'withnoerror' ... >>>withcontext(): ... print'----incontextcall------' ... enteringthezone ----incontextcall------ withnoerror
使用的最多的就是这个contextmanager,另外还有一个closing用处不大
fromcontextlibimportclosing
importurllib
withclosing(urllib.urlopen('http://www.python.org'))aspage:
forlineinpage:
printline
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下