
このパターンには見覚えあり
先ほど明らかになったパターンについて考えてみましょう。前処理コードで準備して、次
に必要な中心のコードが続き、後処理コードで後片付けをします。実は、
6
章でこのパター
ンに当てはまるコードに遭遇しています。下はそのときのコードです。
with open('todos.txt') as tasks:
for chore in tasks:
print(chore, end='')
with
文が、このブロック内のコードを実行するコンテキストを管理することを思い出し
てください。(上のコードのように)ファイルを扱う際は、
with
文は指定のファイルを開い
てそのファイルオブジェクトを返します。この例では、変数
tasks
です。これが前処理コー
ドです。
with
文に関連付けられたブロックが実行コードです。ここでは
for
ループで、こ
のループが実際の仕事(またの名を「重要な処理」)を行います。最後
に、
with
を使ってファ
イルを開くと、
with
のブロックが終了したときに開いたファイルを閉じてくれます。これ
が後処理コードです。
データベースのコードを
with
文に組み込めたら素晴らしいでしょう。理想的には、下の
ようなコードを書いて、
with
文にデータベースの前処理と後処理の詳細をすべて面倒見て
もらえたら最高です。
dbconfig = { 'host': '127.0.0.1',
'user': 'vsearch',
'password': 'vsearchpasswd',
'database': ...