Klassen in Python

You are here:

Klassen in Python sind die Bausteine der objektorientierten Programmierung. Sie definieren die Struktur und das Verhalten von Objekten und bieten eine Möglichkeit, Code auf eine klarere und modularere Weise zu organisieren. Lass uns die verschiedenen Aspekte von Klassen in Python erkunden.

Klassendefinition und Instanzen

Um eine Klasse in Python zu definieren, verwenden wir das Schlüsselwort `class`, gefolgt vom Klassennamen und einem Doppelpunkt. Die Benennung von Klassen folgt der CamelCase-Konvention, bei der das erste Buchstabe jedes Wortes groß geschrieben wird.

class MeineKlasse:

    pass

Um eine Instanz einer Klasse zu erstellen, rufen wir den Klassennamen wie eine Funktion auf.

meine_instanz = MeineKlasse()

Attribute und Methoden

Klassen können Attribute und Methoden enthalten. Attribute sind Variablen, die an eine Klasse oder eine Instanz der Klasse gebunden sind. Methoden sind Funktionen, die innerhalb einer Klasse definiert sind und auf ihre Attribute zugreifen können.

class Auto:

    farbe = "rot"

    def beschreibung(self):

        return f"Das Auto ist {self.farbe}."

mein_auto = Auto()

print(mein_auto.beschreibung())  # Ausgabe: "Das Auto ist rot."

Der `__init__`-Konstruktor

Um eine Klasse bei ihrer Instanziierung zu initialisieren, verwenden wir die `__init__`-Methode. Sie wird aufgerufen, wenn eine neue Instanz der Klasse erstellt wird.

class Auto:

    def __init__(self, farbe):

        self.farbe = farbe

    def beschreibung(self):

        return f"Das Auto ist {self.farbe}."

mein_auto = Auto("blau")

print(mein_auto.beschreibung())  # Ausgabe: "Das Auto ist blau."

Klassenattribute vs. Instanzattribute

Klassenattribute sind Attribute, die für alle Instanzen einer Klasse gemeinsam sind, während Instanzattribute für jede Instanz der Klasse einzigartig sind.

class Auto:

    anzahl_autos = 0

    def __init__(self, farbe):

        self.farbe = farbe

        Auto.anzahl_autos += 1

auto1 = Auto("rot")

auto2 = Auto("blau")

print(Auto.anzahl_autos)  # Ausgabe: 2

Vererbung

Vererbung ist ein grundlegendes Konzept der objektorientierten Programmierung, bei dem eine Klasse von einer anderen Klasse erben und ihre Eigenschaften und Methoden erweitern oder überschreiben kann.

class Elektroauto(Auto):

    def __init__(self, farbe, reichweite):

        super().__init__(farbe)

        self.reichweite = reichweite

    def beschreibung(self):

        return f"Das Elektroauto ist {self.farbe} und hat eine Reichweite von {self.reichweite} km."

mein_elektroauto = Elektroauto("grün", 200)

print(mein_elektroauto.beschreibung())  # Ausgabe: "Das Elektroauto ist grün und hat eine Reichweite von 200 km."

Polymorphie

Polymorphie ist die Fähigkeit von Klassen, eine gemeinsame Schnittstelle zu teilen, aber unterschiedliche Implementierungen zu haben. Es ermöglicht, dass Funktionen auf Objekte verschiedener Klassen angewendet werden können, solange diese Klassen dieselbe Methode implementieren.

class Hund:

    def spricht(self):

        return "Wuff!"

class Katze:

    def spricht(self):

        return "Miau!"

def tier_sprache(tier):

    print(tier.spricht())

mein_hund = Hund()

meine_katze = Katze()

tier_sprache(mein_hund)  # Ausgabe: "Wuff!"

tier_sprache(meine_katze)  # Ausgabe: "Miau!"

Wir haben nun die Grundlagen von Klassen in Python, einschließlich der Definition von Klassen, Attributen und Methoden, dem `__init__`-Konstruktor, Klassen- und Instanzattributen, Vererbung und Polymorphie kennengelernt. Diese Konzepte sind entscheidend für das Verständnis der objektorientierten Programmierung in Python und helfen dabei, den Code besser zu strukturieren und zu organisieren.