Globale Variablen und wie man von einer Funktion in Python wechselt

Shikha Chaudhary 30 Januar 2023
  1. Verwendung von Globale Variablen und ändern Sie sie von einer Funktion in Python
  2. Erstellen Sie die Variable Global in Python
  3. Ändern Sie den Wert der Variablen Global aus einer Funktion in Python
  4. das Schlüsselwort global in Python
  5. die Mehrfachfunktionen und eine globale Variable
  6. eine Funktion, die eine Variable mit dem gleichen Namen wie eine globale Variable hat
  7. Fazit
Globale Variablen und wie man von einer Funktion in Python wechselt

Globale Variablen in Python sind solche Variablen, die einen globalen Geltungsbereich haben. Mit anderen Worten, ihr Umfang ist nicht auf eine bestimmte Funktion oder einen Block des Quellcodes beschränkt.

Verwendung von Globale Variablen und ändern Sie sie von einer Funktion in Python

Deklarieren Sie zuerst die Variable x.

def avengers():
    x = 10
    print("Gibberish")


avengers()
print(x)

Ausgabe:

Gibberish

NameError: name 'x' is not defined

Die Variable x befindet sich innerhalb der Funktion avengers. Das bedeutet, dass der Gültigkeitsbereich dieser Variablen nur auf diese Funktion beschränkt ist.

Aus diesem Grund erhalten wir eine Fehlermeldung, wenn wir versuchen, auf diese Variable außerhalb dieser Funktion zuzugreifen.

Erstellen Sie die Variable Global in Python

Verschieben Sie die Deklaration der Variablen x aus der Funktion.

x = 10


def avengers():
    print("Gibberish")


avengers()
print(x)

Ausgabe:

Gibberish
10

Die Variable x wird ausserhalb der Funktion definiert und kann daher überall in unserem Programm verwendet werden.

Außerdem ist es eine globale Variable. Das Deklarieren einer Variablen im globalen Geltungsbereich erzeugt eine globale Variable in Python.

Wir können auch auf die globale Variable x von der avengers-Funktion zugreifen.

x = 10


def avengers():
    print("From avengers:", x)


avengers()
print("Outside avengers:", x)

Ausgabe:

From avengers: 10
Outside avengers: 10

Ändern Sie den Wert der Variablen Global aus einer Funktion in Python

Dieser Code hat eine globale Variable x mit 10. Dann fügen wir innerhalb der Funktion change 12 zu dieser Variablen x hinzu.

Eine Druckanweisung innerhalb der Funktion sollte den aktualisierten Wert von x ausgeben.

x = 10


def change():
    x = x + 12
    print(x)


change()

Ausgabe:

UnboundLocalError: local variable 'x' referenced before assignment

In Python kann eine Funktion nur auf eine globale Variable zugreifen und diese drucken. Wir müssen der Funktion, die sich auf eine Zuweisung oder Änderung der globalen Variablen bezieht, mitteilen.

Wenn wir dies nicht angeben, denkt die Funktion, dass Zuweisungen und Änderungen an der lokalen Variablen selbst vorgenommen werden. Daher erhalten wir diesen Fehler.

Verwenden Sie das Schlüsselwort global, um den Wert einer globalen Variablen innerhalb einer Python-Funktion zu ändern.

das Schlüsselwort global in Python

Python gibt Ihnen ein Schlüsselwort namens global, um eine Variable außerhalb ihres Gültigkeitsbereichs zu ändern. Verwenden Sie es, wenn Sie den Wert einer Variablen ändern oder Zuweisungen vornehmen müssen.

Lassen Sie uns versuchen, den obigen Code mit dem Schlüsselwort global zu reparieren.

x = 10


def change():
    global x
    x = x + 12
    print(x)


change()

Ausgabe:

22

Sehen Sie, wie wir x mit dem Schlüsselwort global in der dritten Zeile als global angeben.

Lassen Sie uns nun den Wert der Variablen x sehen, wenn Sie ihn außerhalb der Funktion drucken.

x = 10


def change():
    global x
    x = x + 12
    print(x)


change()
print(x)

Ausgabe:

22
22

Da die Funktion x von 10 auf 22 aktualisiert hat, erhalten wir den aktualisierten Wert als Ausgabe, selbst wenn auf die Variable außerhalb des lokalen Gültigkeitsbereichs zugegriffen wird.

var = "A"


def chocolate():
    print("From chocolate:", var)


def cake():
    global var
    var = var * 2
    print("From cake:", var)


chocolate()
cake()
print("From main:", var)

Ausgabe:

From chocolate: A
From cake: AA
From main: AA

Die beste Schlussfolgerung, die Sie aus dieser Ausgabe ziehen können, ist: Auf die Reihenfolge kommt es an. Die Funktion chocolate verwendet den Anfangswert von var und nicht den geänderten Wert.

Das liegt daran, dass die Funktion cake, die den Wert von var modifiziert, nach der Funktion chocolate aufgerufen wird. Wenn wir zuerst die Funktion cake aufrufen, verwendet die Funktion chocolate ebenfalls den aktualisierten Wert von var.

var = "A"


def chocolate():
    print("From chocolate:", var)


def cake():
    global var
    var = var * 2
    print("From cake:", var)


cake()
chocolate()
print("From main:", var)

Ausgabe:

From cake: AA
From chocolate: AA
From main: AA

Dies bringt uns zu einigen Regeln, die Sie befolgen müssen, wenn Sie das Schlüsselwort global von Python verwenden.

  • Standardmäßig ist eine Variable innerhalb einer Funktion lokal und eine Variable außerhalb einer Funktion global. Verwenden Sie dieses Schlüsselwort nicht für Variablen außerhalb einer Funktion.
  • Die Verwendung des Schlüsselworts global außerhalb einer Funktion in Python hat keinerlei Auswirkungen auf den Code.
  • Die Hauptverwendung des Schlüsselworts global besteht darin, Zuweisungen oder Änderungen in Python vorzunehmen. Daher brauchen wir es nicht, um einfach auf die Variable zuzugreifen oder sie zu drucken.

die Mehrfachfunktionen und eine globale Variable

Hier haben wir eine globale Variable s mit dem Wert 1. Sehen Sie, wie die Funktion college das Schlüsselwort global verwendet, um den Wert von s zu ändern.

s = 1


def college():
    global s
    s = s + 5
    print("College students: ", s)
    return s


def school():
    s = college()
    s = s + 10
    print("School students: ", s)
    return s


college()
school()
print("Global students: ", s)

Ausgabe:

College students:  6
College students:  11
School students:  21
Global students: 11

Zuerst nennen wir die Funktion college. Diese Funktion modifiziert die globale Variable s und ändert sie auf 6.

Wir erhalten die Ausgabe als 6 von der ersten Druckanweisung. Dann nennen wir die Funktion school.

Wir nennen die Funktion school innerhalb der Funktion college. Diesmal modifiziert die Funktion college auch den Wert der Variablen s.

Es nimmt den vorherigen Wert von 6 und aktualisiert ihn dann auf 11. Der Endwert der globalen Variablen wird also jetzt 11.

Dann ändert die Funktion Schule es, aber dies wird nicht in der globalen Variable aktualisiert. Es verwendet den aktualisierten Wert von s und druckt den Wert nach dem Hinzufügen von 10.

Das Schlüsselwort global wird nicht verwendet. Daher die Ausgabe 21. Jetzt können Sie sehen, warum die Ausgabe der letzten Anweisung 11 ist.

Dies ist nichts anderes als der aktualisierte Wert der globalen Variablen s.

eine Funktion, die eine Variable mit dem gleichen Namen wie eine globale Variable hat

Es besteht die Möglichkeit, dass wir eine Funktion haben, in der eine Variable mit demselben Namen wie eine globale Variable deklariert ist.

Eine unvermeidliche Frage, die sich hier stellt, ist: Welche Variable wird die Funktion verwenden? Lokal oder global? Lass uns sehen.

# the global variable
a = 5

# function


def music():

    # variable inside function with same name as global variable
    a = 10
    print("Music:", a)


music()
print(a)

Ausgabe:

Music: 10
5

In diesem Code gibt es eine globale Variable a, deren Wert 5 ist. Die Funktion Musik hat auch eine Variable namens a.

Der Wert dieser Variable ist 10. Wenn wir auf den Wert der Variablen a innerhalb der Funktion zugreifen, erhalten wir den Wert der lokalen Variablen dieser Funktion, nämlich 10.

Wenn wir von außerhalb dieser Funktion auf den Wert von a zugreifen, erhalten wir die Ausgabe als 5.

Dies bedeutet, dass, wenn die lokale Variable in einem bestimmten Gültigkeitsbereich mit demselben Namen wie die globale Variable vorhanden ist, sie eine höhere Priorität als die globale Variable hat.

Fazit

Dieses Tutorial lehrte die Grundlagen von globalen Variablen in Python. Wir haben gesehen, wie sie sich von lokalen Variablen unterscheiden und wie wir sie in Python erstellen.

Verwandter Artikel - Python Scope