- 1 Section
- 15 Lessons
- unbegrenzt
- Python Grundkurs16
- 1.1Was ist Python?
- 1.2Installation & Einrichtung
- 1.3Erstes Python Programm: Hallo Welt!
- 1.4Grundlegende Syntax
- 1.5Variablen und Datentypen
- 1.6Kontrollstrukturen
- 1.7Funktionen
- 1.8Module & Pakete
- 1.9Fehlerbehandlung
- 1.10Dateiverarbeitung
- 1.11Klassen und Objekte
- 1.12Vererbung und Polymorphismus
- 1.13Bibliotheken und Frameworks
- 1.14Aufgaben
- 1.15Lösungen
- 1.16Python11 Questions
Klassen und Objekte
1. Warum Objektorientierung?
Stell dir vor, du schreibst ein Programm, das Autos verwalten soll.
Du könntest für jedes Auto eine Variable anlegen:
auto1_marke = "BMW"
auto1_baujahr = 2020
auto1_farbe = "schwarz"
auto2_marke = "Audi"
auto2_baujahr = 2018
auto2_farbe = "blau"
Das funktioniert – aber bei zehn Autos? Fünfzig?
Kaum wartbar, fehleranfällig, unübersichtlich.
Mit Klassen kannst du dir eine eigene Struktur (Bauplan) definieren,
aus der du beliebig viele Objekte (konkrete Autos) erzeugst.
2. Was ist eine Klasse, was ist ein Objekt?
| Begriff | Bedeutung | Beispiel |
|---|---|---|
| Klasse | Der Bauplan oder das „Muster“ eines Objekts | class Auto: |
| Objekt | Eine konkrete Instanz dieser Klasse | mein_auto = Auto() |
| Attribut | Eigenschaft eines Objekts | farbe, baujahr |
| Methode | Verhalten (Funktion innerhalb der Klasse) | fahre(), lackieren() |
3. Beispiel: Eine einfache Klasse
class Auto:
def __init__(self, marke, farbe):
self.marke = marke
self.farbe = farbe
def fahren(self):
print(self.marke, "fährt los!")
mein_auto = Auto("BMW", "schwarz")
mein_auto.fahren()
Ausgabe:
BMW fährt los!
Erklärung:
| Teil | Bedeutung |
|---|---|
class Auto: | Definiert eine neue Klasse namens Auto |
def __init__(...) | Konstruktor – wird automatisch beim Erstellen eines Objekts aufgerufen |
self | Verweis auf das aktuelle Objekt |
self.marke / self.farbe | Attribute (Datenfelder) |
fahren() | Methode (Aktion des Objekts) |
mein_auto = Auto("BMW", "schwarz") | erzeugt ein Objekt |
mein_auto.fahren() | ruft eine Methode auf diesem Objekt auf |
4. Attribute ändern und neue hinzufügen
mein_auto.farbe = "rot"
print(mein_auto.farbe)
→ Ausgabe:
rot
Python erlaubt sogar, Attribute dynamisch hinzuzufügen:
mein_auto.kilometerstand = 12345
print(mein_auto.kilometerstand)
→ Ausgabe:
12345
In der Praxis solltest du aber möglichst alle Attribute im Konstruktor definieren –
das sorgt für sauberen, nachvollziehbaren Code.
5. Mehrere Objekte der gleichen Klasse
auto1 = Auto("BMW", "schwarz")
auto2 = Auto("Audi", "blau")
auto1.fahren()
auto2.fahren()
Ausgabe:
BMW fährt los!
Audi fährt los!
Jedes Objekt hat seine eigenen Attribute und Methoden,
aber die gleiche Struktur (vom Bauplan „Auto“ geerbt).
Klassen und Objekte im Speicher
Klicke auf die Schritte, um zu sehen, was beim Erzeugen eines Objekts passiert.
Code
class Auto:
def __init__(self, marke, farbe):
self.marke = marke
self.farbe = farbe
mein_auto = Auto("BMW", "schwarz")
Speicher / Objekte
[leer]
6. Zusammenfassung
Klassen definieren Struktur und Verhalten von Objekten.
Der Konstruktor
__init__initialisiert neue Objekte.Jedes Objekt bekommt eigene Attribute (z. B.
farbe) und Methoden (z. B.fahren()).Mit
selfgreifst du innerhalb der Klasse auf das aktuelle Objekt zu.OOP fördert Wiederverwendung, Struktur und Lesbarkeit von Code.
