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.......

 

posted on 2016-08-18 18:52  hi_rain  阅读(125)  评论(0)    收藏  举报