Zum Hauptinhalt springen

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

Mini-QuizWomit greift eine Methode auf Objekt-Daten zu?

Zustandsänderung sitzt! Als Nächstes: Methoden mit Parametern.