Python-Klassen und objektorientierte Programmierung

Eine vollständige Einführung in Python-Klassen, -Objekte, -Vererbung und -OOP-Konzepte. Erstellen Sie robuste Datenmodelle und skalieren Sie Ihre Python-Anwendungen.

Versuchen Sie es im Editor

Übersicht

Die objektorientierte Programmierung (OOP) ist ein leistungsstarkes Programmierparadigma, das in Python häufig zur Strukturierung großer, komplexer Anwendungen eingesetzt wird. Im Gegensatz zur prozeduralen Programmierung, die sich auf das Schreiben sequenzieller Funktionen konzentriert, dreht sich bei OOP das Konzept der „Objekte“. Ein Objekt ist eine in sich geschlossene Einheit, die sowohl Daten (sogenannte Attribute) als auch Verhaltensweisen (sogenannte Methoden) bündelt.

Eine „Klasse“ in Python fungiert als Blaupause oder Vorlage zum Erstellen von Objekten. Stellen Sie sich eine Klasse wie einen architektonischen Entwurf für ein Haus vor. Der Bauplan selbst ist kein Haus, aber er definiert, wie das Haus aussehen wird und welche Funktionen es hat. Wenn Sie eine Klasse instanziieren, erstellen Sie ein konkretes „Objekt“ oder eine „Instanz“, die auf dieser Blaupause basiert. Sie können Hunderte einzigartiger Instanzen aus einer einzigen Klasse erstellen.

Im Mittelpunkt von Python-Klassen steht die Methode „__init__()“, die oft als Konstruktor bezeichnet wird. Diese spezielle Methode wird automatisch genau in dem Moment ausgeführt, in dem ein neues Objekt aus einer Klasse erstellt wird. Es ist für die Initialisierung des Standardzustands des Objekts verantwortlich und fügt ihm bestimmte Attribute hinzu. Der Parameter „self“ wird zwingend an Instanzmethoden übergeben und fungiert als Referenz auf das spezifische Objekt, das manipuliert wird.

Eine der stärksten Säulen von OOP ist die Vererbung. Durch Vererbung können Sie eine neue Klasse (eine untergeordnete Klasse) erstellen, die alle Attribute und Methoden einer vorhandenen Klasse (einer übergeordneten Klasse) erbt. Dies fördert die massive Wiederverwendung von Code. Beispielsweise könnten Sie eine generische Klasse „Fahrzeug“ haben und dann untergeordnete Klassen „Auto“ und „Lkw“ erstellen, die von „Fahrzeug“ erben, aber ihr eigenes spezifisches Verhalten hinzufügen.

Ein weiteres Kernkonzept ist die Kapselung, die Idee, den internen Zustand eines Objekts zu verbergen und zu verlangen, dass alle Interaktionen über bestimmte Methoden erfolgen. Während Python keine strengen Zugriffsmodifikatoren wie „private“ oder „protected“ hat, verlässt es sich auf Namenskonventionen (wie das Präfix einer Variablen mit einem Unterstrich „_“), um zu signalisieren, dass ein Attribut nicht direkt von außerhalb der Klasse manipuliert werden sollte.

Code- und Ausführungsausgabe

Definieren einer strikten Darstellung einer Car-Objektinstanz und Verwenden von Klassenmethoden zum Ändern lokaler Instanzdaten.

class Car:
    def __init__(self, make, model):
        self.make = make
        self.model = model
        self.is_running = False

    def start(self):
        self.is_running = True
        return f"{self.make} {self.model} has started."

my_car = Car("Toyota", "Corolla")
print(my_car.make)
print(my_car.start())
Terminal-Ausgabe
Toyota
Toyota Corolla has started.

Schrittweise Umsetzung

  • Modellierung realer Entitäten (Benutzer, Produkte, Warenkörbe)
  • Entwicklung von Spiel-Engines und Entity-Component-Systemen
  • Erstellen wiederverwendbarer grafischer Benutzeroberflächenkomponenten

Häufig gestellte Fragen

Was bedeutet „selbst“?

„self“ repräsentiert die Instanz der Klasse. Durch die Verwendung des Schlüsselworts „self“ können wir auf die Attribute und Methoden der Klasse in Python zugreifen.

Unterstützt Python Mehrfachvererbung?

Ja, Python erlaubt einer Klasse, von mehreren übergeordneten Klassen zu erben.

Verwandte Themen

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.