Zum Hauptinhalt springen

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

Mini-QuizWann laeuft __init__?

init sitzt! Als Nächstes: verschiedene Werte.