Objektorientierte Programmierung: Konstruktor (__init__) & self

Der Avatar-Konfigurator

Fortschritt:
PHASE 1

Discovery & Checkpoint

Video & Einstieg
Verständnis-Check Beantworte die Frage zum Video

Gegeben ist folgender Klassenbauplan:

class Avatar:
    def __init__(self, alias, mana):
        self.alias = alias
        self.mana = mana

held = Avatar("Tarek", 110)

Welcher Ausdruck liest den Namen des erzeugten Objekts korrekt aus?

PHASE 2

Parsons Puzzle

Struktur & Logik
Aufgabe Bringe die Bausteine per Drag & Drop in Reihenfolge

Bringe die Code-Blöcke in die richtige logische Reihenfolge und rücke sie passend ein, um die Klasse Held mit Konstruktor zu definieren, eine Instanz zu erzeugen und die Attribute auszugeben.

Tipp: Benutze die Anfasser zum Verschieben und ⇥- / ⇥+ zum Einrücken.

Dein Programm (Lösung) Hier die Zeilen in die richtige Reihenfolge bringen
Aussortierte Bausteine (Distraktoren) Hierhin fehlerhafte / nicht benötigte Zeilen ziehen
PHASE 3

Scaffolding & Bugfix

Geführte Praxis
Aufgabe Finde und behebe die Fehler im Code

Im folgenden Code fehlen wesentliche Bestandteile der Konstruktormethode und Attributbindung:
1. Ergänze die Unterstriche der speziellen Konstruktormethode __init__.
2. Binde den Parameter level mit self dauerhaft an das Objekt.
3. Korrigiere die Erzeugung des Objekts held, sodass "Tarek" und Level 5 übergeben werden.

Tipp: Passe den Code im Editor an und klicke auf „Ausführen & Prüfen“.

script.py
Python 3.11
Konsole (Output)

                    

Musterlösung:
class Charakter:
    def __init__(self, name, level):
        self.name = name
        self.level = level

held = Charakter("Tarek", 5)

print("Name:", held.name)
print("Level:", held.level)
PHASE 4

Coding Challenge

Eigenständiges Coden
Ziel-Aufgabe Löse die Aufgabe und bestehe alle Tests

Erstelle eine Klasse namens Held für einen Charakter-Generator:
1. Definiere die Methode __init__(self, name, rolle, energie).
2. Speichere alle drei Parameter als Instanzattribute (self.name, self.rolle, self.energie).
3. Erstelle eine Instanz spieler mit den Werten "Tarek", "Gelehrter" und 110.
4. Gib die Eigenschaften des Objekts in genau folgendem Format aus:

   Charakter: Tarek
   Klasse: Gelehrter
   Energie: 110

Tipp: Schreibe deinen Code in den Editor und klicke auf „Code testen“.

solution.py
Python 3.11
Konsole (Output)

                    

Test-Suite

Musterlösung:
class Held:
    def __init__(self, name, rolle, energie):
        self.name = name
        self.rolle = rolle
        self.energie = energie

spieler = Held("Tarek", "Gelehrter", 110)
print(f"Charakter: {spieler.name}")
print(f"Klasse: {spieler.rolle}")
print(f"Energie: {spieler.energie}")
PHASE 5

Der Multiplayer-Charakter-Generator

Kreatives Sandbox-Labor
Freies Experimentieren Erweitere deinen Code nach deinen eigenen Ideen

Erweitere den Konstruktor um weitere Attribute wie gold, ausruestung (als Liste) oder titel.
Erstelle anschließend mehrere unterschiedliche Helden-Objekte in einer Liste und gib alle Datenblätter in einer Schleife formatiert aus!

Tipp: Passe den Code an, führe ihn aus oder lade dein fertiges Programm als Python-Datei herunter.

programm.py
Python 3.11
Konsole (Output)

                    

Lektion vollständig abgeschlossen!

Du hast alle Phasen gemeistert und kannst hier im Sandbox-Labor frei weiterprogrammieren.

Zur Übersicht
Lektion beendet
>_

Benutzereingabe (input)

Dein Python-Programm wartet auf eine Eingabe

Tippe deine Eingabe ein und drücke Enter ↵ oder klicke auf Absenden.