Python Grundlagen: Objektorientierte Programmierung (OOP)
OOP Spickzettel (Extra)
Lesson 7 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.
🐍 Python OOP-Spickzettel
Eine schnelle Referenz für alles, was du im Quest Python Basics: Objektorientierte Programmierung gelernt hast.
1. Klassen und Objekte
Definieren einer Klasse
class Person:
def __init__(self, name, age):
self.name = name # Öffentliches Attribut
self.age = age # Öffentliches Attribut
def greet(self):
print(f"Hallo, ich heiße {self.name} und bin {self.age} Jahre alt.")
Ein Objekt erstellen
p1 = Person("John", 30)
p1.greet() # Hallo, ich heiße John und bin 30 Jahre alt.
2. Attribute und Methoden
- Attribute = Variablen, die zu einem Objekt gehören (
self.attribute) - Methoden = Funktionen, die zu einem Objekt gehören (
def method(self):)
Zugriff:
print(p1.name) # Attribut
p1.greet() # Methode
3. Vererbung
Einfache Vererbung
class Animal:
def __init__(self, name):
self.name = name
def sound(self):
print("Ein generisches Geräusch")
class Dog(Animal):
def sound(self):
print("Wuff wuff!")
dog = Dog("Rex")
dog.sound() # Wuff wuff!
4. super()
Aufruf des Konstruktors der Elternklasse
class Dog(Animal):
def __init__(self, name, breed):
super().__init__(name) # Aufruf von Animals __init__
self.breed = breed
5. Methodenüberschreibung
Kindklassen können Methoden der Eltern ersetzen:
class Cat(Animal):
def sound(self):
print("Miau!")
6. Private Attribute & Methoden
Als privat mit __ markieren
class Person:
def __init__(self, name, age):
self.name = name
self.__age = age # Privates Attribut
def __print_age(self): # Private Methode
print(self.__age)
def show_info(self):
print(self.name)
self.__print_age()
Direkter Zugriff auf private Mitglieder schlägt fehl:
p = Person("Alice", 25)
p.__age # ❌ AttributeError
p._Person__age # ✅ Funktioniert, aber nicht empfohlen
7. Wichtige OOP-Begriffe
| Begriff | Bedeutung |
|---|---|
| Klasse | Vorlage für Objekte. |
| Objekt | Instanz einer Klasse mit eigenen Daten. |
| Attribut | Variable innerhalb eines Objekts. |
| Methode | Funktion innerhalb einer Klasse. |
| Konstruktor | Spezielle Methode __init__, die beim Erstellen eines Objekts aufgerufen wird. |
| Vererbung | Mechanismus zur Wiederverwendung von Code aus einer anderen Klasse. |
| Überschreibung | Neudefinition einer Methode der Elternklasse. |
super() |
Ruft Methoden der Elternklasse auf. |
| Privat | Mit __ vorangestellt, um internen Gebrauch zu kennzeichnen. |
8. Schnelle Best Practices
- Verwende PascalCase für Klassennamen:
MyClass - Benutze
self, um auf das aktuelle Objekt zu verweisen - Halte Methoden auf eine Aufgabe fokussiert
- Nutze private Mitglieder für interne Details
- Rufe
super().__init__()auf, wenn du__init__in einer Kindklasse überschreibst - Nutze Komposition oder Vererbung bewusst – vererbe nicht nur um des Vererbens willen
📌 Merke: OOP bedeutet, in Nomen (Dingen) und ihren Verhaltensweisen zu denken. Modelliere reale Konzepte, halte den Code organisiert und verwende Wiederverwendung, wo immer möglich.