Einleitung: Objektorientierte Programmierung in Python¶
Die objektorientierte Programmierung (OOP) ist ein grundlegendes Konzept vieler Programmiersprachen, bei dem Daten (Attribute) und Funktionen (Methoden) in sogenannten Objekten gebündelt werden. Dieses Prinzip erleichtert die Strukturierung und Wiederverwendbarkeit von Code – besonders bei größeren Programmen.
Python unterstützt OOP nativ und bietet eine klare und einfache Syntax für die Definition eigener Klassen. Dabei können Klassen Konstruktoren, Methoden, Eigenschaften sowie Konzepte wie Vererbung und Kapselung nutzen.
Ziel dieses Beispiels¶
In diesem Notebook definieren wir eine einfache Python-Klasse namens Zahl
, die grundlegende Rechenoperationen bereitstellt: Addition, Subtraktion, Multiplikation und Division.
Zusätzlich behandeln wir zwei typische Fehlerfälle:
- Division durch null
- Ungültiger Operand (z. B. kein
Zahl
-Objekt)
Das Beispiel dient als einfacher Einstieg in die objektorientierte Programmierung mit Python. Es demonstriert, wie man Klassen strukturiert, Methoden kapselt und Fehler sauber erkennt und behandelt.
# Definition einer Klasse "Zahl", die Grundrechenarten unterstützt
class Zahl:
def __init__(self, wert):
self.wert = wert # Attribut zum Speichern des Zahlenwerts
# Methode zur Addition
def addiere(self, anderer):
self._check_typ(anderer) # Typprüfung
return Zahl(self.wert + anderer.wert)
# Methode zur Subtraktion
def subtrahiere(self, anderer):
self._check_typ(anderer)
return Zahl(self.wert - anderer.wert)
# Methode zur Multiplikation
def multipliziere(self, anderer):
self._check_typ(anderer)
return Zahl(self.wert * anderer.wert)
# Methode zur Division mit Fehlerbehandlung
def dividiere(self, anderer):
self._check_typ(anderer)
if anderer.wert == 0:
raise ValueError("Fehler: Division durch null ist nicht erlaubt.")
return Zahl(self.wert / anderer.wert)
# Gibt den aktuellen Wert aus
def anzeigen(self):
print(f"Wert: {self.wert}")
# Private Methode zur Typprüfung
def _check_typ(self, anderer):
if not isinstance(anderer, Zahl):
raise TypeError("Fehler: Argument ist kein Objekt der Klasse 'Zahl'.")
# Beispielnutzung
a = Zahl(12)
b = Zahl(4)
a.addiere(b).anzeigen() # 12 + 4 = 16
a.subtrahiere(b).anzeigen() # 12 - 4 = 8
a.multipliziere(b).anzeigen() # 12 * 4 = 48
a.dividiere(b).anzeigen() # 12 / 4 = 3.0
# Fehlerbeispiele (auskommentiert, damit das Programm weiterläuft)
# a.dividiere(Zahl(0)) # Division durch null (führt zu Fehler)
# a.addiere("kein_objekt") # Typfehler (führt zu Fehler)
Wert: 16 Wert: 8 Wert: 48 Wert: 3.0