O que devo fazer para usar meus objetos de um tipo personalizado como chaves em um dicionário Python (onde não quero que o "ID do objeto" atue como chave), por exemplo
class MyThing:
def __init__(self,name,location,length):
self.name = name
self.location = location
self.length = length
Eu gostaria de usar o MyThing como chaves que são consideradas iguais se o nome e o local forem iguais. No C # / Java, estou acostumado a substituir e fornecer um método equals e hashcode e prometer não alterar nada do qual o hashcode dependa.
O que devo fazer em Python para fazer isso? Eu deveria mesmo?
(Em um caso simples, como aqui, talvez seja melhor colocar uma tupla (nome, localização) como chave - mas considere que eu gostaria que a chave fosse um objeto)
MyThing
, se eles têm o mesmo name
e location
, para indexar o dicionário para retornar o mesmo valor, mesmo se eles foram criados separadamente como dois "objetos" diferentes.