Python Grundlagen: Objektorientierte Programmierung (OOP)
Python Grundlagen: Objektorientierte Programmierung (OOP)
Lesson 1 of 7 • 10 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
Einführung in die objektorientierte Programmierung in Python
Objektorientierte Programmierung (OOP) ist ein Programmierparadigma, das es Ihnen ermöglicht, Konzepte der realen Welt durch Objekte darzustellen – Dinge, die bestimmte Eigenschaften (Daten) und Verhaltensweisen (Aktionen) haben.
Stellen Sie sich ein Objekt als eine in sich geschlossene Einheit in Ihrem Programm vor, die Daten und Aktionen an einem Ort bündelt – wie ein Smartphone, das Sie besitzen: Es hat Daten (Marke, Modell, Akkustand) und kann Aktionen ausführen (ein Foto machen, einen Anruf tätigen, Musik abspielen). Im Code leben diese Daten in Attributen (z.B. battery_level) und die Aktionen sind Methoden (z.B. take_photo()); zusammen bilden sie eine einheitliche Komponente, die Sie erstellen, konfigurieren und verwenden können.
Die Klasse ist der Bauplan (das Design des Telefons), und ein Objekt ist eine reale, individuelle Instanz, die aus diesem Bauplan erstellt wurde (Ihr spezielles Telefon mit aktuellem Akkustand und Fotos). Jedes Objekt behält seinen eigenen Zustand, sodass zwei Objekte aus derselben Klasse gleichzeitig unterschiedliche Werte haben können. Sie interagieren, indem sie Methoden des jeweils anderen aufrufen, statt direkt in die internen Daten einzugreifen – diese Idee heißt Kapselung (Encapsulation) und hilft dabei, den Code zu organisieren, Fehler zu reduzieren und das Verhalten nachvollziehbar zu machen.
Wenn Sie ein Objekt erstellen, führt Python normalerweise init aus, um seinen Anfangszustand festzulegen; danach fordern Sie das Objekt auf, Dinge zu tun, indem Sie seine Methoden aufrufen, die Attribute lesen oder ändern können, wenn nötig. Wenn Sie ein Spiel gebaut haben, denken Sie an einen Player mit health und position, der move() und jump() ausführen kann; in einer Web-App an einen User mit name und password_hash, der authenticate() und update_profile() ausführt.
Das ist alles, was ein Objekt ist: Daten + Verhalten, zusammen lebendig, aus einer Klasse erzeugt und bereit, für Sie zu arbeiten.
In Python ist alles ein Objekt.
Das bedeutet, dass der Code um Objekte und ihre Interaktionen herum geschrieben ist, wodurch OOP ein Kernbestandteil von Python und eine wichtige Funktion in bekannten Bibliotheken und Frameworks wie Django, Flask und sogar vielen Spiel-Engines ist.
In dieser Lektion erkunden wir die grundlegenden Konzepte der OOP in Python und lernen, wie wir eigene Objekte erstellen.
Klassen und Objekte
OOP in Python basiert auf Klassen und Objekten:
- Eine Klasse ist ein Bauplan oder eine Definition für einen Objekttyp. Sie beschreibt, welche Eigenschaften (Attribute) und welches Verhalten (Methoden) dieser Objekttyp haben wird.
- Ein Objekt ist eine Instanz einer Klasse – es ist eine reale Version des Bauplans mit tatsächlichen Daten in seinen Attributen.
1.1. Eine Klasse erstellen
Um eine Klasse in Python zu erstellen, verwenden Sie das Schlüsselwort class, gefolgt vom Klassennamen und einem Doppelpunkt.
Beispiel:
class Person:
pass
Hier haben wir eine Klasse mit dem Namen Person erstellt.
Die Anweisung pass ist ein Platzhalter – sie sagt Python „mach hier nichts“, bis wir später echten Code hinzufügen.
TIP: Üblicherweise verwenden Klassennamen PascalCase (Jedes Wort beginnt mit einem Großbuchstaben).
Attribute und Methoden
Eine Klasse kann haben:
- Attribute – Variablen, die Informationen über das Objekt speichern.
- Methoden – Funktionen, die Aktionen definieren, die das Objekt ausführen kann.
2.1. Attribute hinzufügen
Um Attribute beim Erstellen eines Objekts zu setzen, definieren wir sie innerhalb einer speziellen Methode namens __init__ (ausgesprochen „dunder init“ – kurz für double underscore init).
__init__ wird automatisch immer dann ausgeführt, wenn Sie ein neues Objekt aus der Klasse erstellen.
Es dient dazu, die Attribute des Objekts mit Anfangswerten zu initialisieren.
Beispiel:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
Was hier passiert:
- Der erste Parameter
selfist eine Referenz auf das spezifische Objekt, das gerade erstellt wird. - Die anderen Parameter (
name,age) sind Werte, die beim Erstellen des Objekts übergeben werden. self.nameundself.agesind Instanzattribute, die Daten im Objekt speichern.
WICHTIG!: self muss immer der erste Parameter in Instanzmethoden sein – es erlaubt den Zugriff auf die eigenen Attribute und Methoden des Objekts.
2.2. Methoden hinzufügen
Methoden sind Funktionen, die zu einer Klasse gehören. Sie führen normalerweise Aktionen aus, die die Attribute des Objekts verwenden oder ändern.
Beispiel:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"Hallo, mein Name ist {self.name} und ich bin {self.age} Jahre alt.")
Hier:
- Haben wir eine Methode namens
greethinzugefügt. - Sie verwendet die eigenen Attribute des Objekts (
self.nameundself.age), um eine persönliche Nachricht auszugeben.
Objekte erstellen und verwenden
Sobald Sie eine Klasse definiert haben, können Sie Objekte daraus erstellen – so ähnlich wie einen Funktionsaufruf, aber mit dem Klassennamen.
Beispiel:
person1 = Person("Alice", 30)
person1.greet()
Ausgabe:
Hallo, mein Name ist Alice und ich bin 30 Jahre alt.
Zusammenfassung
In dieser Lektion haben Sie gelernt:
- Der Unterschied zwischen Klassen und Objekten.
- Wie Sie
__init__verwenden, um Attribute beim Erstellen von Objekten zu setzen. - Wie Sie Methoden definieren, die Objekte Aktionen ausführen lassen.
Dies ist die Grundlage der objektorientierten Programmierung in Python. Im nächsten Schritt erweitern wir dies um das Thema Vererbung – eine Möglichkeit, neue Klassen zu erstellen, die auf bestehenden aufbauen.