Python lernen

Globale Variablen und Funktionen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
In dem Video widmen wir uns der Frage, ob und wie globale Variablen in Funktionen bereitstehen. Das ist in Python etwas "speziell" und hängt von der konkreten Situation ab. Wir betrachten hier auch das Schlüsselwort global.
04:16

Transkript

Ich möchte mich in diesem Video mit Ihnen darüber unterhalten, was globale Variablen sind, was lokale Variablen sind und was an Besonderheit and in Python zu beachten ist. Wenn wir uns diesen Quellcode als Basis betrachten, dann haben wir hier eine Variable"a", die außerhalb von einer Funktion deklariert ist, sie ist damit eine globale Variable. Hier ist eine Funktion deklariert und im Inneren gebe ich den Wert von dieser Variable aus. Und hier wird die Funktion aufgerufen, hier greife ich explizit auf die globale Variable zu. Das heißt, es ist zu erwarten, dass wir zweimal den Wert 42 ausgeben. Ich lasse das Beispiel mal laufen und wir haben auch zweimal die 42 hier als Ausgabe. Jetzt ist der Rückschluss, dass wir hier auf die globale Variable "a" zugreifen. Das würde aber bedeuten, dass wir jetzt auch diese Variable "a" zum Beispiel verändern können, indem wir sowas machen.Das heißt, ich nehme den übergebenen Wert oder beziehungsweise den Wert der globalen Variable und Erhöhe ihn um 1 und das würde bedeuten 42,43 könnte man als Ausgabe erwarten. Aber das wird nicht passieren. Wenn wir das Beispiel mal laufen lassen, dann bekommen wir sogar einen Fehler. Und diese Fehlermeldung ist extrem aussagekräftig denn hier steht "local" also lokale Variable wird referenziert, bevor ihr ein Wert zugewiesen wurde. Diese Zeile greift auf eine lokale Variable "a" zu und das heißt offensichtlich ist das nicht der Zugriff auf diese globale Variable. In der Funktion steht also bei der "print"-Ausgabe bei einem lesenden Zugriff zwar der Wert, der globale Variable zur Verfügung, aber nicht die Variable selbst und das heißt ich müsste hier eine Deklaration einer Variablen vornehmen. Und damit gibt es eine lokale Variable "a", die damit die globale Variable "a" verdeckt. Jeder Bezeichner, der innerhalb einer Funktion neu eingeführt wird, jeder variable Bezeichner dient als lokale Variable. Sollte es diesen Bezeichner in der Funktion nicht geben, aber eine globale Variable außerhalb, dann ist ein Lesezugriff darauf ein Zugriff auf den Wert dieser globalen Variable. Der ist dann nicht verdeckt. Nun gibt es noch ein Verfahren, um tatsächlich hier in der Funktion auch die globale Variable zu bekommen, gibt ein Schlüsselwort "global". Jetzt sieht es so aus wie am Anfang. Beides mal der Wert 42, aber jetzt kann ich, so etwas machen. Und damit verändere ich auch den Wert der außerhalb liegenden globalen Variablen. Es ist also so, dass global deklarierte Variablen zwar lesend, also vom Wert her in einer Funktion zu Verfügung stehen, aber dort nicht wirklich zugänglich sind, es sei denn sie werden in der Funktion explizit mit dem Schlüsselwort "global" eingeführt. Führen Sie einen Bezeichner für eine Variable in einer Funktion ein, dann ist das eine lokale Variable, die unter Umständen auch die globale Variable gleichen Namens dann verdeckt.

Python lernen

Lernen Sie Syntax, Konzepte und Sprachelemente der praktischen Programmiersprache Schritt für Schritt kennen.

3 Std. 41 min (64 Videos)
Derzeit sind keine Feedbacks vorhanden...
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:08.06.2018

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!