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 Code:

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

held = Avatar("Kaelen", 110)
# Hier soll der Name auf der Konsole ausgegeben werden

Welche Zeile im Hauptprogramm (außerhalb der Klasse) gibt den Namen des Objekts held korrekt auf der Konsole aus?

PHASE 2

Parsons Puzzle

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

Baue die Klasse Held und das Hauptprogramm Schritt für Schritt zusammen:
1. Definiere die Klasse Held und rücke den Konstruktor __init__ mit den Parametern name und rolle um 1 Tab ein.
2. Binde beide Parameter im Konstruktor an self (2 Tabs eingerückt).
3. Erzeuge im Hauptprogramm (0 Tabs) das Objekt spieler und gib erst spieler.name und danach spieler.rolle aus.

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 "Kaelen" und Level 4 ü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("Kaelen", 4)

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 "Kaelen", "Gelehrter" und 110.
4. Gib die Eigenschaften des Objekts mit print() in genau folgendem Format aus:

   Charakter: Kaelen
   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("Kaelen", "Gelehrter", 110)
print("Charakter:", spieler.name)
print("Klasse:", spieler.rolle)
print("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.