Der Konstruktor __init__
Warum brauchen wir das?
Jedes Haustier braucht beim Erzeugen schon einen Namen.
Dafür gibt es die spezielle Methode __init__ (wird beim Erzeugen aufgerufen).
Beispiel
class Haustier:
def __init__(self, name):
self.name = name
def begruessen(self):
print(f"{self.name} sagt Hallo!")
luna_katze = Haustier("Mira")
luna_katze.begruessen()
self
self ist „dieses Objekt hier“.
Über self.name speicherst du Daten am Objekt.
Py: „self ist wie ein Namensschild am Exemplar.“
Buggy vergisst self und wundert sich.
Rate mal!
a = Haustier("A")
b = Haustier("B")
print(a.name)
print(b.name)
Auflösung
A und B – jedes Objekt hat eigene Daten.
Probiere es selbst
Experiment 1
Klasse mit name und art.
Experiment 2
Zwei Objekte mit verschiedenen Namen.
Experiment 3
Methode, die beide Attribute printet.
Fehlerdetektiv
class Tier:
def __init__(name):
name = name
Lösung
class Tier:
def __init__(self, name):
self.name = name
Übungen
Level 1
Buch mit titel in init.
Level 2
Spieler mit name und punkte=0.
Level 3
Methode status, die beides ausgibt.
Level-2-Lösung
class Spieler:
def __init__(self, name):
self.name = name
self.punkte = 0
s = Spieler("Lily")
print(s.name, s.punkte)
Mini-Quiz
init sitzt! Als Nächstes: verschiedene Werte.