Zurück zu: Python Tutorial
Python – Klassen und Objekte
Was ist eine Klasse?
Eine Klasse ist ein Bauplan für Objekte. Man kann sich eine Klasse wie eine Vorlage vorstellen, nach der konkrete Objekte erstellt werden. In einer Klasse wird definiert, welche Eigenschaften (Variablen) und welches Verhalten (Methoden) ein Objekt haben soll.
Das bedeutet: Eine Klasse selbst ist noch kein Objekt, sondern nur die Beschreibung davon.
class Person:
name = "Max"
In diesem Beispiel definieren wir eine Klasse mit dem Namen Person.
Diese Klasse enthält eine Eigenschaft name, die standardmäßig den Wert "Max" hat.
Was ist ein Objekt?
Ein Objekt ist eine konkrete Instanz einer Klasse. Sobald wir eine Klasse definiert haben, können wir daraus beliebig viele Objekte erstellen.
Jedes Objekt kann eigene Werte haben, auch wenn es auf derselben Klasse basiert.
class Person:
name = "Max"
p1 = Person()
print(p1.name)
In diesem Beispiel erstellen wir ein Objekt p1 aus der Klasse Person.
Danach greifen wir auf die Eigenschaft name zu und geben sie aus.
Methoden in Klassen
Neben Eigenschaften können Klassen auch Funktionen enthalten. Diese Funktionen nennt man Methoden.
Methoden definieren das Verhalten eines Objekts.
class Person:
def __init__(self, name):
self.name = name
def begruessung(self):
print("Hallo, ich heiße " + self.name)
p1 = Person("Tom")
p1.begruessung()
In diesem Beispiel hat die Klasse eine Methode begruessung.
Diese Methode greift auf die Eigenschaft name des Objekts zu und gibt einen Text aus.
Warum Objektorientierung verwenden?
Die objektorientierte Programmierung bringt mehrere Vorteile:
- Der Code wird besser strukturiert
- Wiederverwendbarkeit wird erhöht
- Änderungen lassen sich einfacher durchführen
- Große Programme werden übersichtlicher
Gerade in größeren Projekten ist OOP nahezu unverzichtbar.
Vererbung (Inheritance)
Ein wichtiges Konzept der objektorientierten Programmierung ist die Vererbung.
Dabei kann eine Klasse Eigenschaften und Methoden von einer anderen Klasse übernehmen.
Das ermöglicht es, bestehenden Code wiederzuverwenden und zu erweitern.
class Tier:
def __init__(self, name):
self.name = name
def sprechen(self):
print("Das Tier macht ein Geräusch")
class Hund(Tier):
def sprechen(self):
print(self.name + " bellt")
h = Hund("Bello")
h.sprechen()
Hier erbt die Klasse Hund von der Klasse Tier.
Die Methode sprechen wird überschrieben und an das Verhalten eines Hundes angepasst.
Übungsaufgaben zu Klassen und Objektorientierung (OOP)