Python Variable außerhalb von Funktion ausgeben?
Hallo ist es möglich wenn man in einer funktion eine Variable angibt, sie dann außerhalb der Funktion auszugeben
Mfg. Theo
4 Antworten
Du müsstest die Variable ausserhalb der Funktion schon deklariert haben. Du kannst ihr dann immer noch einen neuen Wert zuweisen.
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.