Klassen und Objekte
Eine Klasse ist ein Bauplan, ein Objekt ist ein Ding, das nach diesem Bauplan gebaut wurde. Du lernst hier vier Bausteine, jeden einzeln: Klasse, Objekt, Attribut, Methode.
Modul 1 — Bauplan und Objekt
Eine Klasse beschreibt, ein Objekt ist.
Was ist eine Klasse?
Stell dir einen Bauplan für Würfel vor. Der Plan selbst ist kein Würfel — aber nach ihm kannst du beliebig viele Würfel bauen. In Python heißt der Bauplan Klasse, jeder gebaute Würfel heißt Objekt.
Eine Klasse beginnt mit dem Schlüsselwort class und einem Namen, der groß geschrieben wird. Das Wort pass bedeutet: „hier steht vorerst nichts“.
class Wuerfel:
pass
w1 = Wuerfel()
w2 = Wuerfel()
Der Aufruf Wuerfel() mit den runden Klammern baut ein neues Objekt. w1 und w2 sind zwei verschiedene Würfel nach demselben Plan.
Beispiel 1.1 — Zwei Objekte aus einem Bauplan
Python wird geladen…Prüfung
Modul 2 — Attribute mit __init__ und self
Jedes Objekt merkt sich seine eigenen Werte.
Der Konstruktor __init__
Ein Würfel soll wissen, wie viele Seiten er hat. Solche gespeicherten Werte heißen Attribute. Angelegt werden sie in der Methode __init__ (zwei Unterstriche vorn und hinten). Python ruft sie automatisch auf, sobald ein Objekt gebaut wird.
class Wuerfel:
def __init__(self, anzahl_seiten):
self.seiten = anzahl_seiten
w = Wuerfel(6)
print(w.seiten)
self steht für „dieses eine Objekt“. Die Zeile self.seiten = anzahl_seiten hängt den Wert an genau den Würfel, der gerade gebaut wird. Von außen liest du ihn mit w.seiten.
Standardwerte
Wie bei Funktionen darf ein Parameter einen Standardwert haben: def __init__(self, anzahl_seiten=6). Dann baut Wuerfel() einen Sechserwürfel, Wuerfel(20) einen mit zwanzig Seiten.
Beispiel 2.1 — Jedes Objekt hat eigene Werte
Python wird geladen…Prüfung
Modul 3 — Die erste Methode
Eine Funktion, die zum Objekt gehört.
Methode = Funktion im Objekt
Eine Methode ist eine Funktion, die in der Klasse steht. Sie bekommt als ersten Parameter immer self, damit sie auf die Attribute des Objekts zugreifen kann. Aufgerufen wird sie mit einem Punkt hinter dem Objekt.
class Wuerfel:
def __init__(self, anzahl_seiten=6):
self.seiten = anzahl_seiten
def maxwert(self):
return self.seiten
w = Wuerfel(20)
print(w.maxwert())
Beim Aufruf w.maxwert() schreibst du self nicht hin — Python setzt dort automatisch das Objekt w ein.
Beispiel 3.1 — Methode aufrufen
Python wird geladen…Prüfung
Modul 4 — Zufall im Objekt
Mit NumPy erhält der Würfel zufällige Augenzahlen.
Zufallszahlen mit NumPy
Nach import numpy liefert numpy.random.randint(low, high) eine zufällige ganze Zahl ab der unteren Grenze bis unter die obere Grenze. Für einen Sechserwürfel ist das numpy.random.randint(1, 7). Mehrere Würfe dürfen dieselbe Zahl ergeben.
import numpy print(numpy.random.randint(1, 7)) print(numpy.random.randint(1, 7))
In der Methode leitest du die obere Grenze aus der Seitenzahl des Objekts ab: Seitenzahl plus 1. So kann auch die höchste Augenzahl gewürfelt werden.
PraxisJetzt selbst programmieren
Die vier Aufgaben bauen die Würfelklasse Schritt für Schritt: Bauplan mit Attribut, Methode maxwert(), Methode wuerfeln(), zwei Würfel zusammen.
Beispiel 4.1 — Zufallszahlen
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.