Vererbung
Vererbung heißt: Eine neue Klasse übernimmt alles von einer vorhandenen und ergänzt nur, was anders ist. Du lernst die drei Bausteine einzeln: erben, super() und überschreiben.
Modul 1 — Warum Vererbung?
Nicht alles noch einmal schreiben.
Basisklasse und Unterklasse
Ein Temperaturversuch ist eine Messreihe — mit Name, Messwerten und Mittelwert — plus ein bisschen mehr. Statt alles noch einmal zu schreiben, erbt die neue Klasse von der vorhandenen. Die vorhandene heißt Basisklasse, die neue Unterklasse.
class TemperaturVersuch(Messreihe):
pass
t = TemperaturVersuch("Erwärmung", [20, 24, 22])
print(t.mittelwert())
Die Basisklasse steht in Klammern hinter dem Namen. Schon mit pass kann die Unterklasse alles, was die Basisklasse kann — mittelwert() ist geerbt.
Beispiel 1.1 — Geerbte Methode
Python wird geladen…Prüfung
Modul 2 — Eigene Attribute mit super()
Die Basisklasse initialisieren lassen, dann ergänzen.
super().__init__(...)
Braucht die Unterklasse ein zusätzliches Attribut, bekommt sie einen eigenen Konstruktor. Damit Name und Messwerte trotzdem wie gewohnt gespeichert werden, ruft er zuerst den Konstruktor der Basisklasse auf — über super(). Danach kommen die eigenen Attribute.
class TemperaturVersuch(Messreihe):
def __init__(self, name, messwerte, einheit="°C"):
super().__init__(name, messwerte)
self.einheit = einheit
Ohne den super()-Aufruf gäbe es weder name noch messwerte im Objekt — die Basisklasse wird nicht automatisch initialisiert.
Beispiel 2.1 — Basisklasse plus eigenes Attribut
Python wird geladen…Prüfung
Modul 3 — Methoden überschreiben
Die Unterklasse darf es anders machen.
Gleicher Name, neue Fassung
Schreibt die Unterklasse eine Methode mit demselben Namen wie die Basisklasse, gilt für ihre Objekte die neue Fassung. Das heißt überschreiben. Typisch ist ein eigenes __str__, damit der Temperaturversuch sich anders vorstellt als eine allgemeine Messreihe.
def __str__(self):
return f"Temperaturversuch {self.name}: {len(self.messwerte)} Werte"
Mit issubclass(TemperaturVersuch, Messreihe) prüfst du, ob eine Klasse von einer anderen erbt; isinstance(t, Messreihe) sagt, ob ein Objekt (auch als Unterklasse) dazugehört.
Beispiel 3.1 — Geerbt oder überschrieben?
Python wird geladen…Prüfung
Modul 4 — Vom Messobjekt zum Versuch
Das Muster hinter den Aufgaben.
Gemeinsames in die Basisklasse, Besonderes in die Unterklasse
So entsteht ein kleines Datenmodell für das Labor: Messreihe kann alles, was jede Messung braucht. TemperaturVersuch ergänzt die Einheit und die höchste Temperatur. Eine Druckmessreihe ergänzt Grenzen und prüft, ob alle Werte dazwischen liegen. Nichts davon wird doppelt geschrieben.
PraxisJetzt selbst programmieren
Drei Aufgaben: TemperaturVersuch erbt von Messreihe, bekommt ein eigenes __str__, und zuletzt entsteht eine Druckmessreihe mit Plausibilitätsgrenzen.
Beispiel 4.1 — Zwei Unterklassen, eine Basis
Python wird geladen…Prüfung
Quellen und weiterführende Literatur
Grundlage des Moduls und vertiefende Python-Referenzen.
Lehrmaterial und Dokumentation
- Vorlesungsnotebook IngInfo_WS26_27_VÜ.ipynb, Abschnitt Objektorientiertes Programmieren.
- Python Tutorial — Classes.
- Real Python — Object-Oriented Programming in Python.
- Theis, Thomas: Einstieg in Python. 7. Auflage, Rheinwerk Verlag, 2023.