globale_variable Python?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Sende mal bitte den ganzen code

Versuche dir aber trotzdem mal zu helfen:

Wenn du eine Funktion in Python erstellst und in dieser Funktion auf eine globale Variable zugreifst, kannst du den Wert dieser globalen Variable ändern. Das liegt daran, dass du in der Funktion auf die Referenz der globalen Variable zugreifst, nicht auf eine Kopie des Werts.

Hier ist ein Beispiel, um dies zu verdeutlichen:

# Globale Variable

globale_variable = 10

# Funktion, die auf die globale Variable zugreift und den Wert ändert

def ausgabe():

  global globale_variable

  print("Vor der Änderung:", globale_variable)

  globale_variable = globale_variable * 10

  print("Nach der Änderung:", globale_variable)

# Aufruf der Funktion

ausgabe()

# Ausgabe der globalen Variable nach dem Funktionsaufruf

print("Nach dem Funktionsaufruf:", globale_variable)

Die Ausgabe dieses Codes wird sein:

Vor der Änderung: 10

Nach der Änderung: 100

Nach dem Funktionsaufruf: 100

Wie du sehen kannst, hat die Funktion

ausgabe()

auf die globale Variable

globale_variable

zugegriffen und ihren Wert geändert. Die Änderungen bleiben auch nach dem Funktionsaufruf bestehen.

Beachte, dass du in der Funktion explizit

global globale_variable

deklarieren musst, damit Python weiß, dass du auf die globale Variable und nicht auf eine lokale Variable mit demselben Namen zugreifen möchtest.

Wenn du die globale Variable in der Funktion nicht ändern möchtest, sondern nur ihren Wert lesen möchtest, kannst du dies tun, ohne die

global

-Anweisung zu verwenden. In diesem Fall wird der Wert der globalen Variable innerhalb der Funktion nur gelesen, aber nicht geändert.

Hoffe ich konnte helfen

Woher ich das weiß:Studium / Ausbildung
wenn ich nun in einer Funktion

Gib doch bitte den gesamten Code an und nicht nur den Methoden-Kopf (ohne Parameter) und den Aufruf. So ist das alles etwas wirr und schlecht nachzuvollziehen - und deine globale Variable ist auch nirgends zu sehen.

mit der globalen_variable arbeiten

Es gibt nicht "die" globale Variable. Was hast du also genau deklariert?

heißt eine Zeichenkette und dazu eine Zahl ausgeben lassen,

Ist die Zeichenzette - also ein String - in der globalen Variable gespeichert? Oder die Zahl? Oder ist es ein Tupel / eine Liste / was auch immer?

Wie steht die Zahl denn im Zusammenhang mit der Zeichenkette?

und dies dann mal 10 mache,

also mit einer Schleife - die du nicht zeigst. Wie gesagt: Poste den ganzen Code ...

woran liegt es das sich die Zahl ohne jeglichen Veränderung verändern lässt in der Funktion.

Wie jetzt. Lässt sie sich jetzt Verändern oder nicht? Wie soll sich etwas ohne jegliche Veränderung verändern lassen

Generell zu globalen Variablen in Python: Liest du von einer globalen Variable, kannst du das jederzeit machen. Willst du auch in der globalen Variable speichern, musst du dies in der Funktion auch mit dem Keyword "global" gefolgt vom Variablennamen angeben

Beispiel:

i = 1

def func_a():
  print(i)

def func_b():
  i += 1
  print(i)

def func_c():
  global i
  i += 1
  print(i)

Rufen wir das jetzt auf, kommt es zu folgenden Ausgaben:

>>> func_a()
1

>>> func_b()
[...]
UnboundLocalError: cannot access local variable 'i' where it is not associated with a value

>>> func_c()
2

Wie du siehst, ist lesen der globalen Variable problemlos möglich, aber das Schreiben benötigt das global Keyword, sonst kann auf die Variable nicht zugegriffen werden

Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)