- 1 Abschnitt
- 15 Lektionen
- Um den Kurs in deinem Profil zu hinterlegen klicke oben auf Starten
- Python Grundkurs16
- 0.1Was ist Python?
- 0.2Installation & Einrichtung
- 0.3Erstes Python Programm: Hallo Welt!
- 0.4Grundlegende Syntax
- 0.5Variablen und Datentypen
- 0.6Kontrollstrukturen
- 0.7Funktionen
- 0.8Module & Pakete
- 0.9Fehlerbehandlung
- 0.10Dateiverarbeitung
- 0.11Klassen und Objekte
- 0.12Vererbung und Polymorphismus
- 0.13Bibliotheken und Frameworks
- 0.14Python9 Fragen
- 0.15Aufgaben
- 0.16Lösungen
Klassen und Objekte
Python unterstützt die objektorientierte Programmierung (OOP), die es ermöglicht, Programme in Objekte zu unterteilen. Diese Objekte können Daten (Attribute) und Funktionen (Methoden) enthalten. Klassen sind Baupläne für Objekte.
9.1. Klassen und Objekte
Eine Klasse definiert die Struktur und das Verhalten der Objekte, die von ihr erstellt werden. Ein Objekt ist eine Instanz einer Klasse.
Definition einer Klasse und Erstellen von Objekten
Syntax:
class Klassenname:
# Konstruktor
def __init__(self, parameter1, parameter2, ...):
# Attribute definieren
self.attribut1 = parameter1
self.attribut2 = parameter2
# Methode definieren
def methodenname(self):
# Methode implementieren
pass
Beispiel: Klasse definieren und Objekte erstellen
# Definition der Klasse Auto
class Auto:
def __init__(self, marke, modell, baujahr):
self.marke = marke
self.modell = modell
self.baujahr = baujahr
def beschreibung(self):
return f"{self.marke} {self.modell} aus dem Jahr {self.baujahr}"
# Erstellen von Objekten der Klasse Auto
auto1 = Auto("Toyota", "Corolla", 2020)
auto2 = Auto("Volkswagen", "Golf", 2018)
# Aufrufen der Methode
print(auto1.beschreibung()) # Ausgabe: Toyota Corolla aus dem Jahr 2020
print(auto2.beschreibung()) # Ausgabe: Volkswagen Golf aus dem Jahr 2018
9.2. Methoden und Attribute
Attribute sind Variablen, die den Zustand eines Objekts speichern, während Methoden Funktionen sind, die das Verhalten eines Objekts definieren.
Beispiel: Attribute und Methoden
# Definition der Klasse Kreis
class Kreis:
def __init__(self, radius):
self.radius = radius
def umfang(self):
return 2 * 3.14159 * self.radius
def flaeche(self):
return 3.14159 * (self.radius ** 2)
# Erstellen eines Objekts der Klasse Kreis
kreis = Kreis(5)
# Aufrufen der Methoden
print(f"Umfang: {kreis.umfang()}") # Ausgabe: Umfang: 31.4159
print(f"Fläche: {kreis.flaeche()}") # Ausgabe: Fläche: 78.53975
9.3. Vererbung
Vererbung ermöglicht es, eine neue Klasse zu erstellen, die die Eigenschaften und Methoden einer bestehenden Klasse übernimmt. Die neue Klasse wird als abgeleitete Klasse oder Unterklasse bezeichnet, und die bestehende Klasse wird als Basisklasse oder Superklasse bezeichnet.
Syntax:
class Unterklasse(Basisklasse):
def __init__(self, parameter1, parameter2, ...):
# Konstruktor der Basisklasse aufrufen
super().__init__(parameter1, parameter2)
# Weitere Attribute definieren
self.neues_attribut = wert
# Neue Methoden definieren oder vorhandene Methoden überschreiben
def neue_methode(self):
pass
Beispiel: Vererbung
# Basisklasse Tier
class Tier:
def __init__(self, name):
self.name = name
def sprich(self):
return "Ein Tier macht Geräusche."
# Unterklasse Hund, die von Tier erbt
class Hund(Tier):
def __init__(self, name, rasse):
super().__init__(name)
self.rasse = rasse
def sprich(self):
return "Wuff!"
# Erstellen von Objekten der Klassen
tier = Tier("Allgemeines Tier")
hund = Hund("Rex", "Schäferhund")
# Aufrufen der Methoden
print(tier.sprich()) # Ausgabe: Ein Tier macht Geräusche.
print(hund.sprich()) # Ausgabe: Wuff!
print(f"Der Hund {hund.name} ist ein {hund.rasse}.") # Ausgabe: Der Hund Rex ist ein Schäferhund.
9.4. Polymorphismus
Polymorphismus ermöglicht es, dass verschiedene Klassenmethoden denselben Namen haben, aber unterschiedlich implementiert sind. Dies erleichtert die Verwendung von Methoden in verschiedenen Kontexten.
Beispiel: Polymorphismus
class Katze(Tier):
def sprich(self):
return "Miau!"
# Erstellen von Objekten
hund = Hund("Bello", "Golden Retriever")
katze = Katze("Minka")
# Aufrufen der Methode sprich
def tier_spricht(tier):
print(tier.sprich())
tier_spricht(hund) # Ausgabe: Wuff!
tier_spricht(katze) # Ausgabe: Miau!
