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 == 0Rufen 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
6Statische 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 * yWichtiger 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 == 0Rufen 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.
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
1Grundlagen der OOP
Externe DateienEinführung in die OOPKlassen vs. ObjekteDer self-ParameterMethodenAttributeKonstruktor-Methode (__init__)Zusammenfassung – Einfacher Taschenrechner4Vererbung
Grundlagen der VererbungDie super()-FunktionMethoden überschreibenMehrfachvererbungMethod Resolution OrderZusammenfassung - Mitarbeiter-Hierarchie7Spezielle Methoden
Einführung in Magic MethodsOperator-ÜberladungMagic Methods für ContainerRückblick - Eigene Liste10Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster13Abschlussherausforderungen
E-Learning-PlattformBanksystemSpielcharakter-EntwicklungFahrzeugvermietung2Dekoratoren
Einführung in DekoratorenProperty-DekoratorStatischer Methoden-DekoratorKlassenmethoden-Dekorator5Polymorphismus
Methoden-Überschreiben vertieftDuck TypingAbstrakte Klassen und MethodenInterface-DesignZusammenfassung – Formen-Rechner8Fortgeschrittene OOP-Konzepte
Komposition vs. VererbungMixinsStatische und KlassenmethodenKlassendekoratorenContext Manager3Klasseneigenschaften
Instanz- vs. KlassenvariablenProperty-DekoratorenPrivate AttributeZusammenfassung – Bankkonto-Manager6Kapselung
Public, Protected, Private MemberZugriffsmodifikatorenInformation HidingProperty-Decorators für FortgeschritteneZusammenfassung - Studentenverwaltungssystem12Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und Benutzerklassen