Python OOP Grundlagen: Klassen, Objekte, Vererbung und Konstruktoren erklärt
Python Objektorientierte Programmierung (OOP)
Pythons OOP-Modell lässt Entwickler reale Entitäten als Objekte modellieren, die durch Klassen definiert sind. Die Sprache priorisiert Code-Wiederverwendung und Modularität, was das Erstellen und Erweitern von Klassen unkompliziert macht.
Was ist eine Klasse?
Beispiel: Eine Customer-Klasse könnte Attribute wie transactions, balance und debt exponieren, sowie Methoden für deposit() oder withdraw().
Klasse in Python definieren
Folgen Sie diesen Schritten, um eine einfache Klasse zu erstellen:
- Nutzen Sie das
class-Keyword:class MyClass: pass - Definieren Sie Methoden innerhalb der Klasse. Der erste Parameter jeder Instanzmethode ist
self, der auf das Objekt selbst verweist.class MyClass: def greet(self): print("Hallo von MyClass") - Instanziieren Sie die Klasse:
obj = MyClass()
- Rufen Sie ihre Methoden auf:
obj.greet()
Vollständiges Beispiel:
# Funktionierendes Beispiel einer Python-Klasse
class MyClass:
def method1(self):
print("Guru99")
def method2(self, text):
print("Software Testing: " + text)
def main():
c = MyClass()
c.method1()
c.method2(" Testing is fun")
if __name__ == "__main__":
main()
Vererbung in Python
Vererbung erlaubt einer abgeleiteten Klasse, das Verhalten einer Basisklasse wiederzuverwenden und zu erweitern. Python unterstützt sowohl einfache als auch mehrfache Vererbung.
class Base:
def greet(self):
print("Hallo von Base")
class Derived(Base):
def greet(self):
super().greet()
print("Hallo von Derived")
# Nutzung
obj = Derived()
obj.greet()
Wichtige Punkte:
- Abgeleitete Klassen erben Attribute und Methoden automatisch.
- Methoden überschreiben, indem Sie eine Methode mit demselben Namen in der Unterklasse definieren.
- Elternmethode explizit aufrufen mit
ParentClass.method(self, …)odersuper().method().
Konstruktoren: __init__
Die __init__-Methode initialisiert neue Objekte mit vordefinierten Werten.
class User:
def __init__(self, name):
self.name = name
def say_hello(self):
print(f"Willkommen bei Guru99, {self.name}")
user = User("Alex")
user.say_hello()
Ausgabe: Willkommen bei Guru99, Alex
Python 2 vs Python 3
Es bestehen nur geringe Syntaxunterschiede. Das obige Beispiel funktioniert in beiden Versionen mit entsprechenden print-Statements.
Wichtigste Erkenntnisse
- Klassen bündeln Daten und Verhalten, definiert mit dem
class-Keyword. - Instanzmethoden nutzen
self, um auf das Objekt zu verweisen. - Vererbung fördert Code-Wiederverwendung und kann einfach oder mehrfach sein.
- Konstruktoren (
__init__) setzen den initialen Zustand für neue Objekte. - Pythons flexible Syntax und Laufzeitbehandlung von
selfmachen OOP intuitiv.
Python
- C# Klassen & Objekte: Fundamente für robustes OOP
- Python Objektorientierte Programmierung meistern: Klassen, Vererbung, Kapselung & Polymorphie
- Python Vererbung meistern: Konzepte, Syntax und praktische Beispiele
- Roboter mit Raspberry Pi und Python bauen: Komplette Anleitung
- C++ Struct vs. Class: Wichtige Unterschiede, Syntax und beste Anwendungsfälle
- Pythons strip()-Methode meistern: Umfassender Leitfaden & Praxisbeispiele
- Python Counter in collections: Effizientes Zählen, Aktualisieren und arithmetische Operationen
- type() und isinstance() in Python verstehen: Praktische Beispiele
- Python list.index(): Element-Positionen finden mit praktischen Beispielen
- Java meistern: Objekte, Klassen und Kern-OOP-Konzepte verstehen