python: мои классы как ключи dict. как?

class A():
   def __init__(self, data=''):
       self.data = data  

   def __str__(self):
       return str(self.data)

d = {}  
elem = A()  
d[elem] = 'abc'  

elem2 = A()
print d[elem2]    # KeyError  
# actually elem2! was used not elem

как я могу реализовать это без ошибок?

РЕДАКТИРОВАТЬ:
FFFUUU, ошибка была:
Я попытался получить d [elem2] (не elem ) с другим экземпляром A (), НО с тем же содержимым. (позор мне)
Тем не менее .. как я могу это сделать? redefine __ hash __ ?

9
задан Karl Knechtel 7 March 2011 в 18:17
поделиться