Routinen mit Parametern
Übergabe von Werten
Bei dem Programm im vorherigen Abschnitt musste die Variable
yposition
immer wieder auf einen neuen Wert gesetzt
werden, bevor der selbstgemachte Befehl namensschild()
aufgerufen wurde.
Viel einfacher wäre es, wenn die y-Position dem Befehl Namensschild
direkt mitgegeben werden könnte, wie man ja auch dem Befehl
dot(...)
die Größe des Punktes direkt als Zahl zwischen
den Klammern mitgibt.
Das funktioniert sehr einfach: Man schreibt den Namen der Variablen, die dem Befehl mitgegeben werden soll, zwischen die Klammern. Man nennt solche mitgegebenen Variablen auch Parameter.
Du siehst: Der untere Teil des Programms wird hierdurch zum einen kürzer und zum anderen deutlich übersichtlicher.
Parameter als lokale Variablen
In dem obigen Beispiel hast du gesehen, dass die Variable
yposition
jetzt ein Parameter der Routine
namensschild
ist.
Auch in diesem Fall ist es so, dass der Parameter zwar genauso heißt
wie die globale Variable. Trotzdem ist es in Wirklichkeit eine lokale
Kopie mit gleichem Namen. Wird auf diese lokale Kopie ein neuer Wert
zugewiesen, ändert sich deshalb der Wert der globalen Variable nicht.
Das kann möglicherweise verwirrend sein.
Eine Möglichkeit, das Problem aktiv zu vermeiden, kann darin bestehen,
Variablen, die als Parameter von Routinen verwendet werden, z.B. mit
einem vorgestellten _
-Zeichen zu markieren, in unserem
Beispiel z.B. also _yposition
. Wenn nun der Programmierer
eine globale Variable yposition
verwendet, kann es hier
keine Verwechslungen geben.
Im folgenden Programm gibt es den Parameter _yposition
als
lokale Variable und die globale Variable yposition
. Sowohl
für den Programmierer als auch für Python ist zur jeder Zeit
eindeutig nachvollziehbar, welche der beiden Variablen gemeint ist.