Kapitel 01

Die erste Klasse: Bauplan vs. Objekt 🐶

Verstehe den Unterschied zwischen einer Klasse und einer Instanz und baue deine ersten Haustier-Objekte.

1. Die wichtigste Idee: Bauplan vs. Haus

In Python ist alles, was du bisher kennengelernt hast (Zahlen, Strings, Listen, Dictionaries), im Grunde ein Objekt. Doch jetzt lernst du, wie du deine ganz eigenen Datentypen erfindest!

🏗️ Die Plätzchenform-Analogie:

Stell dir das Backen vor:

  • Die Klasse (class) ist die Ausstechform. Sie legt fest: Jedes Plätzchen hat einen Kopf, zwei Arme und zwei Beine. Die Form selbst kann man aber nicht essen.
  • Das Objekt (Instanz) ist das echte Plätzchen, das du aus dem Teig ausstichst. Ein Plätzchen bekommt Schokoglasur, das andere Zuckerstreusel. Beide stammen aus derselben Form, sind aber eigenständig!

Warum nicht einfach Dictionaries?

Ein Dictionary hat keine feste Struktur – man vertippt sich leicht:

Python (Problem mit Dictionaries)
tier1 = {"name": "Bello", "tierart": "Hund", "alter": 3}
tier2 = {"name": "Mimi", "art": "Katze", "alter": 5}  # Ups! 'art' statt 'tierart'!
# Ein Programm würde hier abstürzen, weil tier2["tierart"] nicht existiert!

Mit einer Klasse definierst du eine klare, wiederverwendbare Struktur.

2. Wie definiert und nutzt man eine Klasse?

Eine einfache Klasse erstellst du mit dem Schlüsselwort class:

Python
# 1. Bauplan definieren:
class Auto:
    pass  # pass bedeutet: Hier steht erst mal kein weiterer Code

# 2. Ein Objekt erzeugen (Instanziierung):
mein_auto = Auto()

# 3. Eigenschaften (Attribute) mit dem Punkt (.) setzen:
mein_auto.farbe = "Rot"
mein_auto.marke = "VW"
mein_auto.ps = 110

# 4. Werte wieder abfragen:
print(mein_auto.farbe)  # Gibt "Rot" aus
⚠️ Häufige Stolperfalle: Klassenname Großschreiben!
In Python schreibt man Klassennamen standardmäßig in CamelCase mit großem Anfangsbuchstaben (z.B. Haustier, BankKonto), während Variablen und Funktionen klein geschrieben werden (z.B. mein_haustier, erstelle_tier()).

3. Deine Aufgaben in aufgabe.py

Öffne die Datei 01_einstieg_klassen/aufgabe.py und bearbeite die nummerierten TODOs:

💡 Lösungshinweise (Aufklappen bei Bedarf)

Tipp zu TODO 1 & 2 (Objekt erstellen und befüllen)
class Haustier:
    pass

def erstelle_bello():
    tier = Haustier()  # Neues Objekt erzeugen
    tier.name = "Bello"
    tier.tierart = "Hund"
    tier.alter = 3
    return tier  # WICHTIG: Das fertige Objekt zurückgeben!
Tipp zu TODO 5 (Tiere vergleichen)

Du kannst mit einem einfachen if auf die Attribute der übergebenen Objekte zugreifen:

if tier2.alter > tier1.alter:
    return tier2
else:
    return tier1

4. Lösung überprüfen

Führe im Terminal im Ordner 01_einstieg_klassen folgenden Befehl aus:

Terminal
python3 test_aufgabe.py