Что мне нужно сделать, чтобы использовать мои объекты настраиваемого типа в качестве ключей в словаре Python (где я не хочу, чтобы «идентификатор объекта» действовал как ключ), например
class MyThing:
def __init__(self,name,location,length):
self.name = name
self.location = location
self.length = length
Я бы хотел использовать MyThing в качестве ключей, которые считаются одинаковыми, если имя и местоположение совпадают. В C # / Java я привык переопределять и предоставлять метод equals и hashcode, и обещаю не изменять ничего, от чего зависит хэш-код.
Что мне нужно сделать в Python для этого? Я должен даже?
(В простом случае, как здесь, возможно, было бы лучше просто поместить кортеж (имя, местоположение) в качестве ключа, но подумайте, я бы хотел, чтобы ключ был объектом)