Cosa devo fare per usare i miei oggetti di tipo personalizzato come chiavi in un dizionario Python (dove non voglio che l '"ID oggetto" funga da chiave), ad es.
class MyThing:
def __init__(self,name,location,length):
self.name = name
self.location = location
self.length = length
Vorrei usare MyThing come chiavi che sono considerate uguali se il nome e la posizione sono uguali. Da C # / Java sono abituato a dover sovrascrivere e fornire un metodo uguale e hashcode e prometto di non mutare nulla da cui dipende l'hashcode.
Cosa devo fare in Python per ottenere questo risultato? Dovrei anche?
(In un caso semplice, come qui, forse sarebbe meglio posizionare una tupla (nome, posizione) come chiave - ma considera che vorrei che la chiave fosse un oggetto)
MyThing
, se hanno lo stesso name
e location
, per indicizzare il dizionario per restituire lo stesso valore, anche se sono stati creati separatamente come due "oggetti" diversi.