Python深入02 上下文管理器
上下文管理器(context manager)是Python2.5开始支持的一种语法,用于规定某个对象的使用范围。一旦进入或者离开该使用范围,会有特殊操作被调用 (比如为对象分配或者释放内存)。它的语法形式是with...as...
任何定义了__enter__()和__exit__()方法的对象都可以用于上下文管理器。
Python在进入程序块之前调用对象的__enter__()方法,在结束程序块的时候调用__exit__()方法,初始化时调用__init__()方法
class Test(object):
def __init__(self,a):
self.a = a
print('init......')
def __enter__(self):
print(u'enter.......')
return self.a
def __exit__(self,exc_type,exc_value,traceback):
print(u'exit.......')
with Test('xx') as t:
print('方法体。。。')
执行结果:
init...... enter....... 方法体。。。 exit.......
浙公网安备 33010602011771号