2006-09-22から1日間の記事一覧

OCPなコードにする方法

今日、とあるページでOpen-Closedなコードを作成するには、継承と委譲を使うと書いてあった。今まで抽象クラスやダックタイピングを利用したポリモルフィズムしか頭になかったが、デリゲート(タイプセーフな関数ポインタ?)を利用しても実現できることに気が…

Suffix Arrayアルゴリズム

今日、とあるページでSuffix Arrayという文字列検索用のアルゴリズムの存在を知った。例えば、'abracadabra'という文字列があったとして、'abracadabra', 'bracadabra', 'racadabra', ...というように1文字ずつずらした配列を作成し、ソートして検索用のテ…

オブジェクトの同一性と同値性、例外処理

オブジェクトの同一と同値を判定するには以下のようにする。 >>> a = ('a', 1) >>> b = ('a', 1) >>> a == b # 同値性のチェック True >>> a is b # 同一性のチェック False例外には文字列例外とクラス例外の2つがあるが、発生した例外と、exceptブロックに…