¿Qué debo hacer para utilizar mis objetos de un tipo personalizado como claves en un diccionario de Python (donde no deseo que el "identificador de objeto" actúe como clave), p.Objeto de tipo personalizado como clave de diccionario
class MyThing:
def __init__(self,name,location,length):
self.name = name
self.location = location
self.length = length
Me gustaría utilizar 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 equal y hashcode, y prometo no mutar nada de lo que dependa el código hash.
¿Qué debo hacer en Python para lograr esto? Debería incluso?
(En un caso sencillo, como aquí, tal vez sería mejor simplemente colocar un (nombre, ubicación) tupla como clave - pero tenga en cuenta que me gustaría ser la clave para un objeto)
¿Qué hay de malo en usar el hash? –
Probablemente porque quiere dos 'MyThing', si tienen el mismo' nombre' y 'ubicación', para indexar el diccionario para devolver el mismo valor, incluso si se crearon por separado como dos" objetos "diferentes. – Santa
"quizás sería mejor simplemente colocar una tupla (nombre, ubicación) como clave, pero considere que quisiera que la clave sea un objeto)" ¿Quiere decir: un objeto NO COMPUESTO? – eyquem