Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle ich Klassenkonstanten und statische Methoden in Python?

Wie erstelle ich Klassenkonstanten und statische Methoden in Python?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-05 01:29:40430Durchsuche

How Do I Create Class Constants and Static Methods in Python?

Erstellen von Klassenkonstanten und -funktionen in Python

Python ermöglicht Entwicklern das Erstellen von Variablen und Methoden auf Klassenebene, die allgemein als „Klassenvariablen“ bezeichnet werden " und "statische Methoden".

Klasse Variablen

Variablen, die innerhalb einer Klassendefinition außerhalb einer Methode deklariert werden, werden zu Klassenvariablen. Zum Beispiel:

class MyClass:
    i = 3

Der Zugriff auf MyClass.i gibt den Wert 3 zurück. Insbesondere unterscheiden sich Klassenvariablen von allen Variablen auf Instanzebene mit demselben Namen, wie unten gezeigt:

m = MyClass()
m.i = 4
print(MyClass.i, m.i)  # Outputs: (3, 4)

Statische Methoden

Im Gegensatz zu Instanzmethoden sind statische Methoden mit der Klasse selbst und nicht mit einer bestimmten Instanz verknüpft. Um eine statische Methode zu erstellen, verwenden Sie den @staticmethod-Dekorator. Zum Beispiel:

class C:
    @staticmethod
    def f(arg1, arg2, ...): ...

Statische Methoden erhalten keinen Selbstparameter, da sie nicht auf einer bestimmten Instanz ausgeführt werden.

Klassenmethoden vs. statische Methoden

Während statische Methoden für Hilfsfunktionen praktisch sind, bieten Klassenmethoden einen eher pythonischen Ansatz, indem sie die Klasseninstanz als erste übergeben Parameter.

@classmethod
def f(cls, arg1, arg2, ...): ...

In diesem Fall bezieht sich cls auf die Klasse selbst. Dieses Muster wird häufig für Factory-Methoden oder -Operationen verwendet, die die Klasse und nicht eine Instanz manipulieren.

Das obige ist der detaillierte Inhalt vonWie erstelle ich Klassenkonstanten und statische Methoden in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn