print 'Hello YKazu'

('Python', 'Javascript')

コンテキストマネージャの自作

  • 実装方法A

    1. __enter__メソッドを定義
    2. __exit__メソッドを定義
  • 実装方法B

    1. @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()