Lädt...

Besondere Methoden

Mit print(guest) schreibt das erste Programm badge mira auf den Bildschirm. Eine besondere Methode sorgt dafür, dass der Badge selbst auf print oder len antwortet. Der Name mira wird in einem Badge gespeichert; es wird kein Paket installiert und kein Ordner angelegt. Die Zeile print(guest) führt str aus, du schreibst guest.str() also nicht selbst ins Programm. Bei Badge("mira") läuft init, und self ist dieser Badge. str liefert die Wörter "badge " plus den Namen zurück, mit genau einem Leerzeichen zwischen badge und mira. Auf den Bildschirm schreibt print.

print führt __str__ aus

python
class Badge:
    def __init__(self, name):
        self.name = name
    def __str__(self):
        return "badge " + self.name

guest = Badge("mira")
print(guest)

Auf dem Bildschirm steht eine einzige Zeile: badge mira. Gespeichert ist nur mira; das Wort badge davor setzt str dazu. Geschrieben wird die Zeile von print. Ohne print bliebe der Bildschirm leer, denn etwas zurückzugeben heißt nicht, es zu schreiben. guest.str() steht nicht im Programm; print(guest) genügt, um diese besondere Methode auszuführen. Ein Badge ohne str würde nicht badge mira schreiben, sondern eine Zeile mit dem Namen der Vorlage und einer Stelle im Speicher. None wird nicht geschrieben.

len führt __len__ aus

python
class Badge:
    def __init__(self, name):
        self.name = name
    def __len__(self):
        return len(self.name)

guest = Badge("mira")
print(len(guest))

Das zweite Programm steht für sich. Auf seinem Bildschirm erscheint die ganze Zahl 4, weder badge mira noch mira. mira hat vier Buchstaben: m, i, r, a. Darum gibt len die 4 zurück, und print schreibt sie. Es gibt keinen Dezimalpunkt, und im gespeicherten Namen steckt kein Leerzeichen. str ist in diesem Programm nicht definiert, also wird auch nicht badge mira geschrieben. Würde len fehlen, bräche len(guest) mit einem TypeError ab. None wird nicht geschrieben, und das Programm läuft nicht weiter. Diese fehlschlagende Zeile steht nicht im Programm.

📊 Was du schreibst und was erscheint

Was du schreibst Was der Bildschirm zeigt
print(guest) badge mira
print(len(guest)) 4
len(guest) ohne __len__ das Programm bricht ab

Auf der nächsten Seite steckt ein Objekt in einem anderen Objekt. Diese Seite zeigt nur zwei besondere Methoden an einem einzigen Badge namens mira.

Zwei Antworten, ein Badge

print(guest) schreibt badge mira, weil str läuft. print(len(guest)) schreibt 4, weil len läuft. Die 4 ist die Anzahl der Buchstaben in mira. Hinter diese besonderen Namen setzt du keine Klammern. Auf der nächsten Seite steckt ein Objekt in einem anderen Objekt.

🧠 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

❓
5
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