Python Lernhandbuch

Kapitel 7: Klassen und Objekte · Abschnitt 3 von 5

Eigenschaften, Klassen- und statische Methoden

python
class Rechteck:
    def __init__(self, breite, hoehe):
        self.breite = breite
        self.hoehe = hoehe

    @property
    def flaeche(self):                 # Zugriff ohne Klammern: r.flaeche
        return self.breite * self.hoehe

    @classmethod
    def quadrat(cls, seite):           # alternative Konstruktion: Rechteck.quadrat(3)
        return cls(seite, seite)

    @staticmethod
    def ist_gueltig(wert):             # kein self, gehört thematisch zur Klasse
        return wert > 0

r = Rechteck.quadrat(3)
print(r.flaeche)                       # 9
Dekorator Erster Parameter Zweck
(keiner) self Normale Methode, arbeitet mit dem Objekt
@property self Berechneter Wert, der wie ein Attribut gelesen wird
@classmethod cls Arbeitet mit der Klasse selbst, z. B. alternative Konstruktoren
@staticmethod keiner Normale Funktion, die nur thematisch zur Klasse passt

Privat? Python kennt kein private. Konvention: Ein Unterstrich vorne (_intern) bedeutet "nicht von außen anfassen".

Tipp: Bei Python-Beispielen kannst du auf ▶ Ausprobieren klicken, den Code verändern und direkt ausführen.

← Zurück