with 構文が使えない¶
プログラミングでは、例えばファイルの open() と close() のように、対になる
処理がよく出てきます。
例外が発生した場合でも確実にファイルが閉じられるようにするには、
間の処理を try-finally で囲みます。
f = open("input.txt")
try:
n = 0
for line in f:
n += int(line)
print n
finally:
f.close()
でもこれだと、 try と finally がいくつも並んでいると
対応関係が分かりづらいですし、うっかり close() し忘れてしまうかもしれません。
Python 2.5 以上 [*] では、 with 構文を使って
もっと簡単に書くことができます。
with open("input.txt") as f:
n = 0
for line in f:
n += int(line)
print n
でも Python 2.4 では使えません。
| [*] | Python 2.5 では以下の 1行を書くことで使えるようになります。 from __future__ import with_statement
Python 2.6 からは普通に使えます。 |