Deine ersten Klassen und Objekte · Übung
Arbeite mit mehreren unabhängigen Objekten
In der vorigen Lektion verwies self während eines Methodenaufrufs auf first und während eines anderen auf second. Dieser Wechsel ist möglich, weil beide Namen zu getrennten Objekten führen, die aus derselben Klasse erstellt wurden.
Ein Programm kann so viele Question-Instanzen erstellen, wie es braucht:
first = Question("Two plus two?", "4")
second = Question("Three plus three?", "6")
Beide Instanzen folgen derselben Definition Question, aber jede behält ihren eigenen Zustand.
Eine Attributänderung an first verändert second nicht:
first.prompt = "What is two plus two?"
print(first.prompt)
print(second.prompt)
Diese Unabhängigkeit ist ein Grund dafür, dass Objekte zum Modellieren mehrerer Datensätze derselben Art nützlich sind.
Objekte passen in Sammlungen
Ein Objekt ist ein Python-Wert. Deshalb kann eine Liste Objekte genauso enthalten wie Strings oder Dictionarys:
questions = [first, second]
for question in questions:
print(question.prompt)
Die Schleifenvariable verweist bei jedem Durchlauf auf eine andere Question-Instanz.
Namen sind keine Objekte
Der Variablenname ist nur ein Weg, ein Objekt zu erreichen:
current = first
Jetzt verweisen current und first auf dasselbe Objekt. Das erstellt keine Kopie.
current.prompt = "Updated prompt"
print(first.prompt)
Die Ausgabe lautet Updated prompt, weil beide Namen zu einer Instanz führen.

Was bewirkt nach current = first eine Änderung an current.prompt?
Die nächste Lektion gibt einem anderen Objekt eine Sammlung von Fragen und lässt die Objekte zusammenarbeiten.
Aufgabe
Erstelle das fehlende dritte Question, füge es der Liste questions hinzu und lass current auf first verweisen.
Ändere dann current.prompt in "How much is two plus two?". Der ausgegebene erste Fragetext sollte sich ändern, während der zweite und dritte unverändert bleiben.