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!
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:
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:
# 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
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:
python3 test_aufgabe.py