Python staticmethod()-Funktion

Python3 内置函数Python3 integrierte Funktionen


staticmethod()Es ist eine in Python eingebaute Funktion, mit der eine Methode in eine statische Methode umgewandelt wird.

Eine statische Methode gehört zur Klasse und nicht zu Instanzen; sie muss weder auf Instanzattribute zugreifen noch Instanzmethoden aufrufen.staticmethod()Sie kann als Dekorator verwendet und auch direkt aufgerufen werden.

Wortdefinition: staticmethodJastatic methodAbkürzung für (statische Methode).


Grundlegende Syntax und Parameter

Syntaxformat

staticmethod(function)

Parameterbeschreibung

  • Parameter function:
    • Typ: Funktionsobjekt
    • Beschreibung: Die Funktion, die in eine statische Methode umgewandelt werden soll.

Funktionsbeschreibung

  • Rückgabewert: Gibt ein statisches Methodenobjekt zurück.
  • Eigenschaften: Statische Methoden benötigenselfden Parameter self nicht und können direkt über den Klassennamen aufgerufen werden.

Beispiel

Beispiel 1: Grundlegende Verwendung

Beispiel

class MathUtils:
    # Dekorator verwenden, um eine statische Methode zu definieren (empfohlen)
    @staticmethod
    def add(a, b):
        return a + b

    @staticmethod
    def multiply(a, b):
        return a * b

# Direkt über den Klassennamen aufrufen (keine Instanz muss erstellt werden)
result = MathUtils.add(3, 5)
print(result)  # Ausgabe: 8

result = MathUtils.multiply(4, 6)
print(result)  # Ausgabe: 24

Erwartete Ausgabe:

8
24

Codeanalyse:

  1. Statische Methoden verwenden@staticmethodden Dekorator zum Definieren.
  2. Kann wie eine gewöhnliche Funktion aufgerufen werden, gehört aber zum Namensraum der Klasse.
  3. Sie kann aufgerufen werden, ohne eine Instanz der Klasse zu erstellen.

Beispiel 2: Ohne Verwendung eines Dekorators

Beispiel

class Temperature:
    @staticmethod
    def celsius_to_fahrenheit(c):
        return c * 9/5 + 32

    @staticmethod
    def fahrenheit_to_celsius(f):
        return (f - 32) * 5/9

# Statische Methode aufrufen
print(Temperature.celsius_to_fahrenheit(0))    # Ausgabe: 32.0
print(Temperature.celsius_to_fahrenheit(100)) # Ausgabe: 212.0
print(Temperature.fahrenheit_to_celsius(32)) # Ausgabe: 0.0

# Sie kann auch über eine Instanz aufgerufen werden
temp = Temperature()
print(temp.celsius_to_fahrenheit(25))  # Ausgabe: 77.0

Erwartete Ausgabe:

32.0
212.0
0.0
77.0

Codeanalyse:

  • Statische Methoden werden oft in Hilfsklassen verwendet, um Funktionen zu kapseln, die nicht mit Instanzen zusammenhängen.
  • Statische Methoden können über den Klassennamen oder einen Instanznamen aufgerufen werden.

Beispiel 3: Anwendung im Factory-Muster

Beispiel

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    @staticmethod
    def from_dict(data):
        # Ein Person-Objekt aus einem Dictionary erstellen
        return Person(data['name'], data['age'])

    @staticmethod
    def create_adult(name):
        # Erstelle einen Erwachsenen
        return Person(name, 18)

# Verwende eine statische Methode, um das Objekt zu erstellen
p1 = Person.from_dict({'name': 'Tom', 'age': 20})
print(p1.name, p1.age)  # Ausgabe: Tom 20

p2 = Person.create_adult('Jack')
print(p2.name, p2.age)  # Ausgabe: Jack 18

Erwartete Ausgabe:

Tom 20
Jack 18

Statische Methoden werden oft als Fabrikmethoden verwendet, um Objektinstanzen aus verschiedenen Datenquellen zu erstellen.


Python3 内置函数Python3 integrierte Funktionen


Andere Erweiterungen