Heim > Backend-Entwicklung > Python-Tutorial > Wie wirken sich Funktionen auf globale Variablen aus? Den Umfang und die Interaktionen entmystifizieren

Wie wirken sich Funktionen auf globale Variablen aus? Den Umfang und die Interaktionen entmystifizieren

Mary-Kate Olsen
Freigeben: 2024-10-19 12:14:02
Original
311 Leute haben es durchsucht

How Do Functions Affect Global Variables? Demystifying the Scope and Interactions

Auswirkungen von Funktionen auf globale Variablen: Eine aufgedeckte Verwirrung

Bei der Arbeit mit Funktionen und globalen Variablen ist es wichtig zu verstehen, wie sich deren Umfang und Interaktionen auf das Verhalten Ihres Codes auswirken. Schauen wir uns einen konkreten Fall an, in dem eine Funktion scheinbar nicht in der Lage ist, eine globale Variable zu aktualisieren, was zu unerwarteten Ergebnissen führt.

Betrachten Sie den folgenden Code:

<code class="python">done = False

def function():
    for loop:
        code
        if not comply:
            done = True  # Let's assume the code enters this if-statement

while done == False:
    function()</code>
Nach dem Login kopieren

Wie Sie bemerkt haben, ist dies der Fall Der Code führt die Funktion() auch dann weiter aus, wenn er „done“ auf „True“ gesetzt hat. Der Grund dafür ist, dass die Funktion() ihren eigenen lokalen Namensraum erstellt und alle Änderungen, die an Variablen innerhalb dieser Funktion vorgenommen werden, nicht an den globalen Bereich weitergegeben werden. Um stattdessen die globale Variable done zu verwenden, müssen Sie ihre globale Natur innerhalb der Funktion explizit mit dem globalen Schlüsselwort deklarieren:

<code class="python">def function():
    global done
    for loop:
        code
        if not comply:
            done = True</code>
Nach dem Login kopieren

Durch die Einbindung des globalen Schlüsselworts stellen Sie eine Verknüpfung zwischen der globalen Variablen und ihrer lokalen her Gegenstück innerhalb der Funktion. Infolgedessen werden alle innerhalb der Funktion vorgenommenen Änderungen direkt im globalen Bereich widergespiegelt, was dazu führt, dass die While-Schleife beendet wird, wenn „Done“ zu „True“ wird.

Im Gegensatz dazu gilt in diesem Beispiel:

<code class="python">done = False

while done == False:
    for loop:
    code
    if not comply:
        done = True  # Let's assume the code enters this if-statement</code>
Nach dem Login kopieren

Die Variable „done“ wird innerhalb des Gültigkeitsbereichs der while-Schleife definiert und wird daher nicht von der außerhalb der Schleife definierten Variable „done“ beeinflusst. Folglich wird die while-Schleife wie erwartet beendet, wenn done innerhalb des Schleifenbereichs auf True gesetzt ist.

Um robusten und vorhersehbaren Code zu schreiben, ist es wichtig, den Gültigkeitsbereich von Variablen und die Auswirkungen von Funktionen auf globale Variablen zu verstehen. Denken Sie immer daran, sorgfältig zu überlegen, wie Ihre Funktionen mit globalen Variablen interagieren, und verwenden Sie das Schlüsselwort global mit Bedacht, um sicherzustellen, dass innerhalb von Funktionen vorgenommene Änderungen wie beabsichtigt an den globalen Bereich weitergegeben werden.

Das obige ist der detaillierte Inhalt vonWie wirken sich Funktionen auf globale Variablen aus? Den Umfang und die Interaktionen entmystifizieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage