¿Qué debo hacer para usar mis objetos de un tipo personalizado como claves en un diccionario de Python (donde no quiero que el "ID del objeto" actúe como la clave), por ejemplo?
class MyThing:
def __init__(self,name,location,length):
self.name = name
self.location = location
self.length = length
Me gustaría usar MyThing como claves que se consideran iguales si el nombre y la ubicación son los mismos. Desde C # / Java estoy acostumbrado a tener que anular y proporcionar un método igual y de código hash, y prometo no mutar nada de lo que depende el código hash.
¿Qué debo hacer en Python para lograr esto? ¿Debo incluso?
(En un caso simple, como aquí, tal vez sería mejor simplemente colocar una tupla (nombre, ubicación) como clave, pero tenga en cuenta que me gustaría que la clave sea un objeto)
MyThing, si tienen el mismo namey location, para indexar el diccionario para que devuelva el mismo valor, incluso si se crearon por separado como dos "objetos" diferentes.