Ich habe also ein Quadrat, das aus einer Reihe von Punkten besteht. An jedem Punkt gibt es einen entsprechenden Wert.
Was ich tun möchte, ist ein Wörterbuch wie folgt zu erstellen:
%Vor%Wenn ich jedoch später ein neues Punktobjekt erstelle und versuche, mit dem Schlüssel dieses Punktes auf den Wert des Wörterbuchs zuzugreifen, funktioniert es nicht.
%Vor%Ich vermute, dass dies daran liegt, dass Python zwei Objekte mit denselben Eigenschaften nicht als das selbe Objekt betrachtet? Gibt es einen Weg dazu? Danke
Definieren Sie Point.__hash__()
und Point.__eq__()
, damit sie innerhalb von Dicts richtig verglichen werden können.
Und wenn Sie gerade dabei sind, überlegen Sie, Point.__repr__()
so zu definieren, dass Sie es erhalten anständig aussehende Darstellungen Ihrer Point
Objekte.
Schritte: Implementieren Sie eine benutzerdefinierte Schlüsselklasse und überschreiben Sie die Hash- und Gleichheitsfunktion.
z.B.
%Vor%Lesen Sie den Artikel Verwenden der benutzerdefinierten Klasse als Schlüssel im Python-Wörterbuch für vollständige Details.
Tags und Links python object dictionary