メソッド __getitem__ は何処に

メソッド __getitem__ は、演算子 [] の値を参照するときの動作を規定します。


class HashTable:
def __getitem__(self, key):
e = self._detect(key)
if e:
return e[key]
else:
raise KeyError, key

前述した補助関数 _detect を利用して、指定したキー key を含む連結リスト e を獲得します。そして、if に続く条件式 e を満たすなら、該当する連結リストが存在するので、対応する値 e[key] をリターン値とします。それが存在しないなら、例外 KeyError を生成します。


class LinkedList:
def __getitem__(self, key):
for k, v in self.items():
if key == k: return v
return None

if に続く条件式 key==k を満たすなら、指定したキー key を含むリスト項目が存在するので、対応する値 v をリターン値とします。それが存在しないなら、None をリターン値とします。