タグ

2012年1月23日のブックマーク (1件)

  • ハッシュ値の計算方法 (2) - プログラミング日記

    odz buffer: list の hash (http://d.hatena.ne.jp/odz/20071202/1196602935) list の __hash__ が TypeError を投げるで間違いなさげ。 やはり挙動から推測した通り。しかし一般には、実装==仕様ではないが、公式サイトにある「Python Reference Manual」が仕様と考えて良いのかな。 以下は、「Pythonリファレンスマニュアル」からの抜粋。 __hash__( self) 辞書演算 の際にキーとなるオブジェクトに対して呼び出されたり、組み込み関数 hash() から呼び出されたりします。 辞書演算におけるハッシュ値として利用できる、32 ビットの整数を返さなければなりません。このメソッドに必要な性質は、比較結果が等価であるオブジェクトは同じハッシュ値をもつということです; オブジェクト間

    ハッシュ値の計算方法 (2) - プログラミング日記
    shu_ohm1
    shu_ohm1 2012/01/23
    オブジェクトを辞書のキーにするには、objectを継承して新スタイルクラスとする、__hash__()を実装する、__cmp__()または__eq__()を実装する