Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich statische Variablen in Python-Funktionen simulieren?

Wie kann ich statische Variablen in Python-Funktionen simulieren?

DDD
Freigeben: 2024-12-16 19:03:16
Original
218 Leute haben es durchsucht

How Can I Simulate Static Variables in Python Functions?

Statische Variablen in Python-Funktionen: Nachahmung von C/C

In C/C können Funktionen statische Variablen deklarieren, um den Status über Funktionsaufrufe hinweg beizubehalten. Python hingegen unterstützt standardmäßig keine statischen Variablen innerhalb von Funktionen.

Statische Variablen in Python-Funktionen implementieren

Um das Verhalten statischer Variablen innerhalb von Python-Funktionen zu reproduzieren, verwenden Sie Folgendes Ansatz:

<br>def foo():</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">if not hasattr(foo, "counter"):
    foo.counter = 0
foo.counter += 1
print("Counter is", foo.counter)
Nach dem Login kopieren

Hier prüfen wir die Existenz des „Zähler“-Attributs innerhalb der Funktion. Wenn es nicht existiert, initialisieren wir es auf 0. Dieser Initialisierungscode wird zu Beginn des ersten Funktionsaufrufs ausgeführt.

Decorator-Ansatz

Um die Lesbarkeit zu verbessern und den Initialisierungscode nach zu verschieben Oben kann man einen Dekorator verwenden:

<br>def static_vars(**kwargs):</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">def decorate(func):
    for k in kwargs:
        setattr(func, k, kwargs[k])
    return func
return decorate
Nach dem Login kopieren

@static_vars(counter=0)
def foo():

foo.counter += 1
print("Counter is", foo.counter)
Nach dem Login kopieren

Beeinflusst der Klassenumfang statische Variablen?

Das Platzieren der Funktion innerhalb einer Klasse ändert sich nicht die Implementierung statischer Variablen. Die statischen Variablen sind weiterhin funktionsspezifisch und nicht klassenspezifisch.

Das obige ist der detaillierte Inhalt vonWie kann ich statische Variablen in Python-Funktionen simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Vorheriger Artikel:Wie kann ich ganze Pandas-Datenrahmen und -Serien in Python hübsch drucken? Nächster Artikel:Wie kann ich eine Pandas DataFrame-Spalte einteilen und Werte in jedem Bin zählen?
Erklärung dieser Website
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
Neueste Artikel des Autors
Aktuelle Ausgaben
verwandte Themen
Mehr>
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage