コンテキストマネージャの自作
実装方法A
- __enter__メソッドを定義
- __exit__メソッドを定義
実装方法B
- @contextlib.contextmanagerデコレータ付きのジェネレータを定義
class MyContextManager: # 必須 def __enter__(self): print '1.enter' return self # 必須 def __exit__(self, exc_type, exc_value, traceback): print '4.exit' # 自作メソッド def bar(self): print '3.bar' with MyContextManager() as cm: print '2.foo' cm.bar()