Zum Hauptinhalt springen

Methoden mit Parametern

Beispiel

class Haustier:
def __init__(self, name):
self.name = name
self.hunger = 5

def fuettern(self, menge):
self.hunger = self.hunger - menge
if self.hunger < 0:
self.hunger = 0
print(f"{self.name}: Hunger jetzt {self.hunger}")

mira = Haustier("Mira")
mira.fuettern(2)
mira.fuettern(10)

self kommt zuerst, dann deine Parameter.

Rate mal!

def heilen(self, punkte):

Wie viele Argumente beim Aufruf held.heilen(5)?

Auflösung

Du übergibst 5; self kommt automatisch vom Objekt.

Probiere es selbst

Experiment 1

einzahlen(betrag).

Experiment 2

umbenennen(neuer_name).

Experiment 3

Zwei Parameter: trainieren(minuten, intensitaet) (einfach printen).

Fehlerdetektiv

mira.fuettern()

wenn fuettern(self, menge) definiert ist.

Lösung

Argument fehlt: mira.fuettern(1).

Übungen

Level 1

setze_level(self, level).

Level 2

add_score(self, wert).

Level 3

kaempfen(self, schaden) reduziert leben.

Level-2-Lösung
class Spieler:
def __init__(self, name):
self.name = name
self.score = 0

def add_score(self, wert):
self.score = self.score + wert

s = Spieler("Py")
s.add_score(10)
print(s.score)

Mini-Quiz

Mini-QuizWo steht self in der Methodendefinition?

Parameter sitzen! Als Nächstes: return aus Methoden.