pythonとscalaのファイルの自動クローズ
February 7, 2011 - Scala, python
エキスパートPythonプログラミングを少しずつ読み進めています。といっても気になるタイトルを拾い読みですが。
そのなかの”2.4 withとcontextlib”の章のwith文の例としてファイル読み込みのコードが書いてました。 たったこれだけで、自動クローズまでやってくれるみたい。
実装すべきは下記2メソッドのみ。
- enter(self)
- exit(self, exception_type, exception_value, exception_traceback)
さらにさらに、contextlibというモジュールを使えば、もっと自然に書けます。 ※これは、contextmanager内のfinally句でcloseを書くのと同じ。(参考)
Scalaでwith(っぽいもの)を実装
pythonのwith文と同様の記述方法をScalaでやるとしたら…こんな感じでしょうか。ファイルの自動クローズについてはこちらを参考にさせていただきました。