Python の何が気に入っているのかというはなし 〜SAX の場合〜

端的に言うとライブラリの「センス」がいいのです。細かい気配りの効いたお店ってあるでしょう。あんな感じ。

今日ちょっと話したんですが、最近大変気に入った Python の SAX のはなし。たいていの OO 言語の SAX 実装は Visitor パターンで、startElement や endElement などのメンバをもったオブジェクトと XML の実データを渡してパースしてやることになると思います。Python の場合 ContentHandler クラスの子クラスを作ることになります。ここまではふつう。

ふと、saxutils パッケージに XMLGenerator クラスなる、ContentHandler のサブクラスがあります。説明を読むと、そのまま出力されるだけだったり、クラス名も最初謎でした。これ何に使うんだ? ここで気づくのです! あぁ、これまさに Generator じゃん!!

続きを読む