Menu
Coddy logo textTech

Statischer Methoden-Dekorator

Teil des Abschnitts Object Oriented Programming der Python-Journey von Coddy — Lektion 11 von 64.

Der @staticmethod-Decorator erstellt Methoden, die weder self noch die Klasse benötigen. Sie funktionieren wie reguläre Funktionen, gehören aber zur Klasse.

Hier ist ein Beispiel für eine Klasse mit statischen Methoden:

class MathHelper:
    @staticmethod
    def add(a, b):
        return a + b
    
    @staticmethod
    def is_even(number):
        return number % 2 == 0

Rufen Sie statische Methoden über den Klassennamen auf:

result = MathHelper.add(5, 3)
print(result)

check = MathHelper.is_even(10)
print(check)

Sie können sie auch von einem Objekt aus aufrufen:

helper = MathHelper()
result2 = helper.add(2, 4)
print(result2)

Ausgabe:

8
True
6

Statische Methoden greifen nicht auf Instanz- oder Klassendaten zu:

class Calculator:
    brand = "Python Calc"
    
    def __init__(self, owner):
        self.owner = owner
    
    @staticmethod
    def multiply(x, y):
        # Kann nicht auf self.owner oder Calculator.brand zugreifen
        return x * y

Wichtiger Punkt: Verwenden Sie @staticmethod, wenn Sie eine Funktion benötigen, die mit der Klasse in Beziehung steht, aber keinen Zugriff auf Instanz- (self) oder Klassendaten benötigt. Kein self-Parameter erforderlich.

Spickzettel

Der @staticmethod-Decorator erstellt Methoden, die weder self noch die Klasse benötigen. Sie funktionieren wie reguläre Funktionen, gehören aber zur Klasse.

class MathHelper:
    @staticmethod
    def add(a, b):
        return a + b
    
    @staticmethod
    def is_even(number):
        return number % 2 == 0

Rufen Sie statische Methoden über den Klassennamen auf:

result = MathHelper.add(5, 3)
check = MathHelper.is_even(10)

Sie können sie auch von einem Objekt aus aufrufen:

helper = MathHelper()
result2 = helper.add(2, 4)

Statische Methoden greifen nicht auf Instanz- oder Klassendaten zu – es wird kein self-Parameter benötigt.

Probier es selbst

Diese Lektion enthält keine Programmieraufgabe.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Object Oriented Programming