Python Variable außerhalb von Funktion ausgeben?

4 Antworten

Du müsstest die Variable ausserhalb der Funktion schon deklariert haben. Du kannst ihr dann immer noch einen neuen Wert zuweisen.

Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung

Du kannst ein „global i“ einbauen, womit Python weiß, das keine neue lokale Variable i in der Funktion verwendet werden soll, sondern die globale Variable i, die außerhalb der Funktion sichtbar ist.

def test():
    global i
    i = "Hallo"
    s = "Tschö"

test()
print(i)

Bevor du jedoch globale Variablen verwendest, solltest du überlegen, ob du das nicht auch anders lösen kannst. Zwar kann es in seltenen Fällen sinnvoll sein, globale Variablen in Funktionen zu verwenden. Oftmals gibt es für ein Problem aber eine bessere Lösung als das Verwenden von globalen Variablen. (Unbedachtes Verwenden von globalen Variablen wird üblicherweise als schlechter Programmierstil gesehen.)

# i = "deklariert" # geht auch ohne, siehe unten

def test():
  global i
  i = "Hallo"

print(i)

Man braucht die Variable nicht außerhalb der Funktion zu deklarieren. Wenn du das global weglässt, ist i eine lokale Variable in der Funktion test

Guter Programmierstil ist das allerdings nicht.

def test():
   i = "Hallo"
   s = "Tschö"
   return i, s

x, y = test()
print(x, y)

Eine Funktion kommuniziert mit ihrer Außenwelt über Parameter und Rückgabewerte. Ansonsten gilt: was in der Funktion passiert, bleibt in der Funktion. Die Variablen i und s sind lokale Variablen und existieren außerhalb nicht.

Das ist zwar nur die halbe Wahrheit, aber als Grundsatz solltest du dabei bleiben, bis du mehr davon verstehst.