Heim > Artikel > Backend-Entwicklung > So verstehen Sie statische Variablen von Klassen in Python
Python verwendet Funktionsstandardwerte, um statische Funktionsvariablen zu implementieren. Wenn es sich um eine statische Methode handelt, können Sie die Annotation @staticmethod verwenden.
1. Standardwerte für Python-Funktionen
Die Verwendung von Standardwerten für Python-Funktionen kann beim Schreiben von Code beim Aufrufen von Funktionen hilfreich sein. Daher werden in Python häufig Funktionsstandardwerte verwendet, insbesondere in Klassen. Standardwerte werden im Allgemeinen in den Initialisierungsfunktionen von Klassen verwendet. Wenn Sie Klassen verwenden, können Sie ganz einfach Klassen erstellen, ohne eine Reihe von Parametern zu übergeben.
Solange Sie „=defalut_value“ nach dem Namen des Funktionsparameters hinzufügen, ist der Standardwert der Funktion definiert. Zu beachten ist, dass Parameter mit Standardwerten am Ende der Funktionsparameterliste stehen müssen. Parameter ohne Standardwerte dürfen nicht nach Parametern mit Standardwerten platziert werden, da dies der Fall ist Der Interpreter weiß nicht, wie Parameter übergeben werden.
Sehen wir uns zunächst einen Beispielcode an:
def ask_ok(prompt, retries=4, complaint='Yes or no, please!'): while True: ok = raw_input(prompt) if ok in ('y', 'ye', 'yes'): return True if ok in ('n', 'no', 'nop', 'nope'): return False retries = retries - 1 if retries < 0: raise IOError, 'refusenik user' print complaint
Wenn Sie die obige Funktion aufrufen, können Sie die Anzahl der Wiederholungsversuche und die Sprache der Ausgabeaufforderung ändern. Wenn Sie faul sind, können Sie dies nicht tun muss irgendetwas ändern.
2. Python verwendet den Standardwert der Funktion, um die Funktion statischer Variablen zu implementieren.
Statische Variablen werden in Python nicht unterstützt, aber wir können die Funktion statischer Variablen über den Standardwert der Funktion implementieren.
Wenn der Standardwert der Funktion eine Klasse mit variablem Inhalt ist, ist der Inhalt der Klasse variabel, der Name der Klasse bleibt jedoch unverändert. (Es ist gleichbedeutend damit, dass sich der geöffnete Speicherbereich nicht ändert, aber der Inhalt kann sich ändern.)
Dies liegt daran, dass der Standardwert der Funktion in Python nur einmal ausgeführt wird (wie statische Variablen wird auch die Initialisierung statischer Variablen einmal ausgeführt). Dies ist, was sie gemeinsam haben.
Sehen Sie sich das folgende Programmfragment an:
def f(a, L=[]): L.append(a) return L print f(1) print f(2) print f(3) print f(4,['x']) print f(5)
Das Ausgabeergebnis ist:
[1] [1, 2] [1, 2, 3] ['x', 4] [1, 2, 3, 5]
Das vorherige ist leicht zu verstehen, warum ist „print f(5 )“ am Ende? Die Ausgabe ist „[1, 2, 3, 5]“?
Dies liegt daran, dass die Standardvariable beim Drucken von f(4,['x']) nicht geändert wurde, da die Initialisierung der Standardvariablen nur einmal ausgeführt wird (der erste Aufruf mit dem Standardwert). Die Initialisierung wird ausgeführt. Der geöffnete Speicherbereich (wir können ihn als Standardvariable bezeichnen) wurde nicht geändert, sodass das endgültige Ausgabeergebnis „[1, 2, 3, 5]“ ist.
Das obige ist der detaillierte Inhalt vonSo verstehen Sie statische Variablen von Klassen in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!