>>> class A(object): ... def __init__(self, dict_): ... self.dict_ = dict_ ... def __getitem__(self, key): ... return self.dict_[key] ... >>> a = A({'foo':'bar'}) >>> a <__main__.A object at 0x7fee5adfbe80> >>> a['foo'] 'bar' >>> 'foo' in a Traceback (most recent call last): File "", line 1, in File "", line 5, in __getitem__ KeyError: 0