with manager as var: do_something(var)
var = manager.__enter__() try: do_something(var) finally: manager.__exit__()
>>> class closing(object):
... def __init__(self, obj):
... self.obj = obj
... def __enter__(self):
... return self.obj
... def __exit__(self, *args):
... self.obj.close()
>>> with closing(open('/tmp/file', 'w')) as f:
... f.write('the contents\n')
>>> with open('/tmp/file', 'a') as f:
... f.write('more contents\n')
filename="my.txt"
mode="w"
writer=open(filename,mode)
writer.write("hello world")
writer.close()
writer=open(filename,mode)
try:
writer.write("hello world")
finally:
writer.close()
with open(filename,mode) as writer:
writer.write("hello world")
class echo():
def output(self):
print "hello world"
def __enter__(self):
print "enter"
return self #可以返回任何希望返回的东西
def __exit__(self,exception_type,value,trackback):
print "exit"
if exception_type==ValueError:
return True
else:
return Flase
>>>with echo as e:
e.output()
输出:
enter hello world exit
def __exit__(self,exc_type,exc_value,exc_tb)
from contextlib import contextmanager
@contextmanager
def make_context():
print 'enter'
try:
yield "ok"
except RuntimeError,err:
print 'error',err
finally:
print 'exit'
>>>with make_context() as value:
print value
enter ok exit
@contextlib.contextmanager def loudLock(): print 'Locking' lock.acquire() yield print 'Releasing' lock.release() with loudLock(): print 'Lock is locked: %s' % lock.locked() print 'Doing something that needs locking' #Output: #Locking #Lock is locked: True #Doing something that needs locking #Releasing
with open(filename,mode) as reader:
with open(filename1,mode1) as writer:
writer.write(reader.read())
with contextlib.nested(open(filename,mode),open(filename1,mode1)) as (reader,writer): writer.write(reader.read())
with open(filename,mode) as reader,open(filename1,mode1) as writer: writer.write(reader.read())
import contextlib
class myclass():
def __init__(self):
print '__init__'
def close(self):
print 'close()'
with contextlib.closing(myclass()):
print 'ok'
__init__ ok close()
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有