‐ programming, open source, os, and a handful of tips Pythonのwith構文がいまいち掴めなかったので、ざっとまとめてみた(いまさらながら)。ドキュメントはPython リファレンスマニュアルの7.5 with 文にある。 withを使ったコード例は、下記のような感じ。 c = ClassHogeHoge() with c: c.foobar() 上記のコードは、下記と等価となる。 c = ClassHogeHoge() c.__enter__() c.foobar() c.__exit__() つまり、withに続くインデントブロックを実行する前に指定したオブジェクトの「__enter__()」メソッドを呼び出し、実行後に「__exit__()」メソッドが暗に呼び出される、という仕組み。 __enter__()と__exit__(