Python3 – Variablen

Variablen

Variablennamen in Python sind erstmal Case Sensitiv. Ansonsten sind folgende Zeichen erlaubt:

  • A bis Z und a bis z
  • 0-9 (nur nicht an erster Stelle)
  • _ (undersocre)
  • unicode zeichen, was aber nicht ratsam ist.

Ein Dollar Zeichen am Anfang wird nicht benötigt. Spart auf Dauer auch wieder einiges an getippten Zeichen.

Und dann gibt es einen großen Unterschied zu sprachen wie Java oder C. In diesen werde nämlich Variablen typisiert. Das ist in Python jedoch nicht der Fall. Eine Variable in Python hat keinen Typ. Wohl aber das Objekt, auf welche die Variable verweist.

Somit funktioniert das folgende problemlos:

Sprich eben noch auf ein int Objekt verwiesen, kann die variable im nächsten Moment auf einen String zeigen. Variablen können auf alles verweisen, auch auf Funktionen. Dazu später mehr.

Es bleibt noch zu merken das eine Variable erst zur Laufzeit entsteht und zwar zum Zeitpunkt der ersten Zuweisung.

Gültigkeit

Bei der Gültigkeit einer Variable gibt es einen etwas eigenwilligen Ansatz. Der ist aber auch der Tatsache geschuldet böse Globalen Variablen zu vermeiden. Für die Beispiele ein Hintergrund: def leitet eine Funktion ein. Dann fangen wir an:

Dies funktioniert, da  s nicht innerhalb der Funktion lokal definiert ist. Es wird (lesend) auf die globale Variable s zugegriffen.

Hier erfolgt aus Ausgabe:

Die Variable s in der Funktion f bleibt nun eine lokale Variable innerhalb der Funktion und hat wie jede andere in Funktionen definierten Variablen keinen Einfluss außerhalb der Funktion.

Der mix geht jetzt natürlich nicht:

Dieses Chaos ergibt zu recht ein: UnboundLocalError: local variable ‘s’ referenced before assignment

Das Chaos könnte man nun mit dem global Schlüsselwort gültig machen. Aber sollte man das wirklich mal brauchen läuft mit dem Code sowieso irgend etwas falsch.

Der Schnellkurs

Bei Fragen hinterlasse mir  einfach ein Kommetar.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*