Объект настраиваемого типа как ключ словаря

Что мне нужно сделать, чтобы использовать мои объекты настраиваемый тип как ключи в словаре Python (где я не хочу, чтобы «идентификатор объекта» действовал как ключ), например

class MyThing:
    def __init__(self,name,location,length):
            self.name = name
            self.location = location
            self.length = length

Я бы хотел использовать MyThing в качестве ключей, которые считаются одинаковыми, если имя и местоположение такой же. Из C # / Java я привык переопределять и предоставлять метод equals и hashcode и обещаю не изменять ничего, от чего зависит хэш-код.

Что мне нужно сделать в Python для этого? Я должен даже?

(В простом случае, как здесь, возможно, было бы лучше просто поместить кортеж (имя, местоположение) в качестве ключа - но подумайте, я бы хотел, чтобы ключ был объектом)

178
задан aknuds1 23 October 2014 в 11:03
поделиться