Python verschiedene Objekte, gleiche Referenz?
Ich habe eine Liste erstellt und habe zwei verschiedene Objekte erzeugt, mit verschiedenen Attributen, und diese der Liste hinzugefügt. Als ich dann den Wert eines Attributs ändern wollte, hat sich auch das Attribut des anderen Objekts geändert.
Hiernach habe ich die Objekt Referenzen kontrolliert, und da ist mir aufgefallen, dass beide Objekte die gleiche Referenz haben. Aber wie kann das sein, wenn die beiden verschiedene Attributwerte haben, und wie kann ich es beheben, dass die beiden Objekte nicht die selbe Referenz haben?
Pastebin Link: https://pastebin.com/55avRgd0
1 Antwort
das Options = []
in deiner Klassenfefinition ist KEIN Klassenattribut, sondern einfach eine lokale Variable.
Wenn du willst, dass diese Liste ein Objektspezifisches Attribut sein soll, dann musst du es mit self.options schreiben, und dann ggf im Konstruktor initialisieren!
Die Lösung ist richtig, die Beschreibung des IST-Zustand hingegen nicht. Die Variable options ist natürlich ein Klassenattribut. Sofern ist es objektungebunden. Wenn du es änderst, ändert es sich für alle Instanzen.
Vielen Dank