Python Kurs Fortgeschritten 👩‍🎓 | #7 - Scope Gültigkeitsbereich

preview_player
Показать описание

Scope
Hallo und Herzlich Willkommen =)
In dieser Lektion wirst du das Konzept vom Scope, also dem Gültigkeitsbereich einer Variable kennenlernen.

Grundsätzlich ist eine Variable immer nur in dem Bereich (zum Beispiel einer Funktion), in dem sie erstellt wurde oder untergeordneten Bereichen verfügbar.
Wenn du dich an einer bestimmten Stelle in deinem Code befindest kannst du also immer zwischen lokalen und globalen Variablen unterscheiden.
Lokale Variablen wurden in genau den Bereich erstellt, in dem sie verwendet werden.
Globale Variablen dagegen wurden in einem übergeordneten Bereich erstellt.

def ScopeTest():
lokaleVariable = "lokale Variable"
print(globaleVariable)
print(lokaleVariable)

globaleVariable = "globale Variable"

ScopeTest()
print(globaleVariable)
print(lokaleVariable)

### ERGEBNIS / AUSGABE ###
globale Variable
lokale Variable
globale Variable
NameError: name 'lokaleVariable' is not defined

Du kannst also in der untergeordneten Funktion immer auf Variablen von übergeordneten Bereichen zugreifen, wirst andersherum allerdings eine Fehlermeldung erhalten.

Du solltest wissen, dass Python immer mit der möglichst spezifischen Variable arbeitet.
Das heißt, dass wenn du Variable mit gleichem Namen innerhalb und außerhalb einer Funktion nutzt, erstellt Python automatisch zwei verschiedene Variablen – eine globale sowie eine lokale.

def ScopeTest2():
globaleVariable = "lokale Variable mit gleichem Namen"
lokaleVariable = "lokale Variable"
print(globaleVariable)
print(lokaleVariable)

globaleVariable = "globale Variable"
print(globaleVariable)

ScopeTest2()

print(globaleVariable)

### ERGEBNIS / AUSGABE ###
globale Variable
lokale Variable mit gleichem Namen
lokale Variable
globale Variable

Innerhalb der Funktion erstellt oder bearbeitet Python bevorzugt die lokale Variable, während die globale unverändert bleibt.

Um also den Wert einer globalen Variable mit einer untergeordneten Funktion zu ändern, solltest du am besten mit Rückgabewerten arbeiten.

def ScopeTest3():
return "geänderte globale Variable"

globaleVariable = "globale Variable"
print(globaleVariable)

globaleVariable = ScopeTest3()

print(globaleVariable)

### ERGEBNIS / AUSGABE ###
globale Variable
geänderte globale Variable

Wenn du möchtest kannst du alternativ auch explizit mit dem Schlüsselwort „global“ auf die globale Variable referenzieren und anschließend damit arbeiten.

def ScopeTest4():
global globaleVariable
globaleVariable = "geänderte globale Variable"
print(globaleVariable)

globaleVariable = "globale Variable"
print(globaleVariable)

ScopeTest4()

print(globaleVariable)

### ERGEBNIS / AUSGABE ###
globale Variable
geänderte globale Variable
geänderte globale Variable

Falls du Probleme oder Fragen zu dem Konzept des Scope von Variablen bei Python hast, dann lass es mich bitte wissen, oder wenn es besonders schnell gehen soll, dann frag am besten zuerst Google oder schaue im Fragen Teil nach.
Wenn du den Unterschied zwischen lokalen und globalen Variablen verstanden hast und wenn dir das Konzept des Scope wieder einfällt sobald du dich einmal fragst, warum sich der Wert deiner Variable nicht verändert hat, obwohl du sie doch gerade erst in der letzten Funktion angepasst hast, dann wird dir dieses Wissen in Zukunft hoffentlich viel Kopfzerbrechen sparen.
Vielen Dank fürs zuschauen und bis gleich in der nächsten Lektion =)
Рекомендации по теме