Statische Python-Methode
In diesem Artikel wird gezeigt, wie Sie statische Methoden in Python erstellen und verwenden können.
Statische Python-Methode
Eine statische Methode gehört zu einer Klasse; dennoch ist es nicht an das Objekt dieser Klasse gebunden. Daher kann sie aufgerufen werden, ohne eine Instanz der Klasse zu erstellen, in der sie sich befindet. Da statische Methoden nicht an ein Objekt gebunden sind, kennt sie die Eigenschaften einer Klasse nicht und kann daher nicht auf die Eigenschaften von zugreifen oder diese ändern die Klasse.
Erstellen und verwenden Sie eine statische Python-Methode
Zuerst erstellen wir eine Instanzmethode, damit wir sie von einer statischen Methode unterscheiden können. Nehmen wir an, wir haben eine Klasse Coffee
mit einer Methode namens is_hot
, die eine ganze Zahl als Parameter akzeptiert. Sie gibt True
zurück, wenn die angegebene ganze Zahl größer als 50 ist, und False
, wenn sie kleiner als 50 ist.
class Coffee:
def is_hot(self, temperature):
return temperature > 50
coffee = Coffee()
print(coffee.is_hot(100))
Ausgabe:
True
Im obigen Beispiel wurde coffee
, eine Instanz der Klasse Coffee
, instanziiert, um die Methode is_hot
aufrufen zu können.
Machen wir nun aus is_hot
eine statische Methode, indem wir den Dekorator @staticmethod
verwenden. Es ist ein eingebauter Dekorator, der verwendet wird, um eine Methode als statische Methode zu definieren.
class Coffee:
@staticmethod
def is_hot(temperature):
return temperature > 50
print(Coffee.is_hot(100))
Ausgabe:
True
Im Gegensatz zu der Instanzmethode, die wir aus dem vorherigen Beispiel erstellt haben, müssen Sie bei statischen Methoden kein self
als Parameter übergeben und Sie müssen keine Instanz der Klasse erstellen, um eine statische Methode verwenden zu können . Sie können das Verfahren einfach direkt verwenden.
Alternativ kann die Funktion staticmethod()
verwendet werden, um eine statische Methode zu erstellen. Dies ist eine eingebaute Funktion, die eine Funktion als Parameter nimmt und als statische Methode zurückgibt.
class Coffee:
def is_hot(temperature):
return temperature > 50
Coffee.is_hot = staticmethod(Coffee.is_hot)
print(Coffee.is_hot(100))
Ausgabe:
True
Statische Methoden sind nützlich, wenn Sie Dienstprogrammmethoden erstellen, die eine Aufgabe isoliert ausführen, da sie nicht auf die Eigenschaften einer Klasse zugreifen oder diese ändern müssen. es funktioniert nur mit den in den Argumenten übergebenen Daten.
Zusammenfassend können wir eine statische Methode erstellen, indem wir den Dekorator @staticmethod
oder die Funktion staticmethod()
verwenden. Sie benötigen keine Instanz einer Klasse, um eine statische Methode aufzurufen. wir können es einfach direkt anrufen.