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.