PythonRecipesに寄稿
126:コレクションのような性質を持つクラスを作る
を書きました。
class FrozenMap(Mapping, Hashable): """変更不可能、辞書の様に値を取り出せて、辞書のキーに使用できる""" def __init__(self, adict): self._dict = dict(adict) self._tuple = tuple(adict.iteritems()) def __getitem__(self, key): return self._dict[key] def __iter__(self): return iter(self._dict) def __len__(self): return len(self._dict) def __eq__(self, other): return self._tuple == other._tuple def __hash__(self): return hash(self._tuple)