Heim  >  Artikel  >  Backend-Entwicklung  >  So verstehen Sie statische Variablen von Klassen in Python

So verstehen Sie statische Variablen von Klassen in Python

anonymity
anonymityOriginal
2019-05-27 13:43:336085Durchsuche

Python verwendet Funktionsstandardwerte, um statische Funktionsvariablen zu implementieren. Wenn es sich um eine statische Methode handelt, können Sie die Annotation @staticmethod verwenden.

So verstehen Sie statische Variablen von Klassen in Python1. 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, &#39;refusenik user&#39;
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,[&#39;x&#39;])
print f(5)

Das Ausgabeergebnis ist:

[1]
[1, 2]
[1, 2, 3]
[&#39;x&#39;, 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!

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