パーフェクトPython (p.119)

contextlib.contextmanager の使い方がいまいちピントこないけど、
また後になって復習する