Methoden verändern Objekte
Beispiel
class Haustier:
def __init__(self, name):
self.name = name
self.hunger = 5
def fuettern(self):
self.hunger = self.hunger - 1
if self.hunger < 0:
self.hunger = 0
print(f"{self.name} ist satt. Hunger: {self.hunger}")
mira = Haustier("Mira")
mira.fuettern()
mira.fuettern()
Methoden sind Fähigkeiten. Sie arbeiten mit self.....
Rate mal!
Was passiert mit hunger bei jedem fuettern?
Auflösung
Er sinkt (mindestens bis 0 im Beispiel).
Probiere es selbst
Experiment 1
Methode spielen, die Hunger erhöht.
Experiment 2
Status-Methode.
Experiment 3
3× füttern, Status ansehen.
Fehlerdetektiv
def fuettern():
hunger = hunger - 1
in der Klasse ohne self.
Lösung
def fuettern(self):
self.hunger = self.hunger - 1
Übungen
Level 1
Spieler mit punkte und plus_punkt.
Level 2
Konto mit stand und einzahlen.
Level 3
Haustier mit fuettern + spielen + status.
Level-1-Lösung
class Spieler:
def __init__(self, name):
self.name = name
self.punkte = 0
def plus_punkt(self):
self.punkte = self.punkte + 1
s = Spieler("Luna")
s.plus_punkt()
print(s.punkte)
Mini-Quiz
Zustandsänderung sitzt! Als Nächstes: Methoden mit Parametern.