Pythonを使う上で、withステートメントは、やはり見逃せない機能の1つであると思います。 Python2.5〜3.xまで網羅しているようにしたつもりです。 基本 まず、一番身近なファイル操作の例を載せておきます。 with open("...") as f: print(f.read()) これは、以下と同等です。 f = open("...") print(f.read()) f.close() withステートメントを使うと、withを抜けた時に、自動的にf.closeされます。 asは必須ではありません。 f = open("...") with f: print(f.read()) これも先ほどのコードと同等です。 withに対応したクラスを作る 使うだけでは理解も深まらないので、作る方も見てみましょう。 withに渡すのは__enter__と__exit__の2つのメソッド