第一种是实现上下文管理器协议,即魔法方法__enter__和__exit__。
class Foo: def __enter__(self): print 'in' def __exit__(self, type, value, trace): print 'out'定义了之后,就可以这样来使用
with Foo(): print 'do something'输出:
from contextlib import contextmanager @contextmanager def Foo(): print 'in' yield print 'out'