Cosa devo fare per utilizzare i miei oggetti di un tipo personalizzato come chiavi in un dizionario Python (dove non voglio che "ID oggetto" agisca come chiave), ad es.Oggetto del tipo personalizzato come chiave del dizionario
class MyThing:
def __init__(self,name,location,length):
self.name = name
self.location = location
self.length = length
Vorrei utilizzare MyThing come chiavi considerate uguali se nome e posizione sono uguali. Da C#/Java Sono abituato a dover eseguire l'override e fornire un metodo equals and hashcode, e prometto di non mutare nulla da cui dipende l'hashcode.
Cosa devo fare in Python per realizzare questo? Dovrei anche?
(In un caso semplice, come qui, forse sarebbe meglio mettere solo un (nome, posizione) tupla come chiave - ma prendere in considerazione vorrei la chiave per essere un oggetto)
Cosa c'è di sbagliato con l'utilizzo l'hash? –
Probabilmente perché vuole due 'MyThing', se hanno lo stesso' nome' e 'posizione', per indicizzare il dizionario per restituire lo stesso valore, anche se sono stati creati separatamente come due diversi" oggetti ". – Santa
"Forse sarebbe meglio mettere semplicemente una tupla (nome, posizione) come chiave - ma considera che vorrei che la chiave fosse un oggetto)" Vuoi dire: un oggetto NON-COMPOSITO? – eyquem