Lädt...

Objekte zusammensetzen

Die Farbe blue gehört dem Stift, nicht der Tasche. Die Tasche trägt den Stift nur mit sich, deshalb ist Bag keine Kindklasse von Pen. Dabei wird weder ein Paket installiert noch ein Ordner angelegt; alles spielt sich zwischen zwei kleinen Klassen und den Objekten ab, die du daraus baust.

Ein Stift in einer Tasche

python
class Pen:
    def __init__(self, color):
        self.color = color

class Bag:
    def __init__(self, pen):
        self.pen = pen

pen = Pen("blue")
bag = Bag(pen)
print(bag.pen.color)

Zuerst baust du den Stift mit Pen("blue"), danach steckst du ihn mit Bag(pen) in die Tasche. Die Zeile class Bag füllt noch gar nichts; sie beschreibt nur, wie eine Tasche aufgebaut ist. Gefüllt wird die Tasche erst bei Bag(pen): In diesem Moment läuft das init von Bag ab, und self ist die Tasche.

Bei print(bag.pen.color) hat die Tasche selbst keine Farbe, die sie nennen könnte, also geht die Abfrage weiter zum Stift darin. Auf dem Bildschirm steht deshalb genau ein Wort: blue. bag.pen ist kein zweiter Stift, sondern genau der, den du gebaut hast. Darum ergeben pen.color und bag.pen.color dasselbe Wort. Kein badge steht davor, die Zahl 4 wird nicht geschrieben, und eine zweite Zeile gibt es nicht.

📊 Was jeder Ausdruck bedeutet

Ausdruck Bedeutung
pen der Stift, den du gebaut hast und der blue behält
bag.pen derselbe Stift, jetzt in der Tasche
bag.pen.color das Wort blue

Zwei Zeilen, die nicht im Programm stehen, würden es anhalten. Wer bag.color liest, stoppt mit einem Fehler namens AttributeError, weil an der Tasche keine Farbe gespeichert ist; None wird nicht geschrieben, und das Programm läuft nicht weiter. Auch Bag("blue") steht nicht im Programm: Ein nacktes Wort ist kein Stift und hat keine color, also endet auch dort das Lesen von .color mit AttributeError.

Der Stift in der Tasche

blue bleibt am Stift, die Tasche trägt ihn nur, und bag.pen.color erreicht das Wort über ihn. Schreib deshalb nicht class Bag(Pen): Diese Form würde eine Kindklasse anlegen, hier aber steckt der Stift in der Tasche. Auf der nächsten Seite geht es um die Datenklasse, also eine Klasse, die vor allem Werte aufbewahrt. Diese Seite steckt nur den Stift in die Tasche und liest blue über die Tasche aus.

🧠 Testen Sie Ihr Wissen

Bereit zum Start

Testen Sie Ihr Wissen

Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen

❓
6
Fragen
🎯
70%
Zum Bestehen
♾️
∞
Zeit
🔄
∞
Versuche

📝 Anweisungen

  • Lesen Sie jede Frage sorgfältig
  • Wählen Sie die beste Antwort für jede Frage
  • Sie können das Quiz so oft wiederholen, wie Sie möchten
  • Ihr Fortschritt wird oben angezeigt