Python lernen

Übergabewerte

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Über Funktionsparameter oder kurz Parameter übergibt man Werte an eine Funktion. Bei der Deklaration gibt man in Python die Namen als kommataseparierte Liste an. Die Parameter sind innerhalb der Funktion in Python lokale Variablen.
04:58

Transkript

Wir wollen uns in diesem Video ansehen, was es mit diesen sogenannten Übergabewerten an eine Funktion auf sich hat. Den Parametern oder auch Argumente genannt. Ich deklariere mal eine Funktion und nenne die mal "multi". Ich muss mindestens die runden Klammern notieren, einen Doppelpunkt und mindestens eine Anweisung, gegebenenfalls genügt eine "pass"-Anweisung die leere Anweisung, aber dann mach diese Funktion natürlich nichts und das ist in der Regel unsinnig. Angenommen aber ich möchte diese Funktion Werte übergeben, dann muss ich hier Parameter angeben. Und das ist eine Liste von Bezeichnern die dann für lokale Variablen, innerhalb dieser Funktion stehen. Und das heißt, ich kann jetzt zum Beispiel, statt der "pass"-Anweisung hier, die Variable "a" mal der Variable "b" nehmen. Beim Aufruf der Funktion werden diese Variablen, diese Parameter ersetzt, durch konkrete Werte. Und die Ausgabe 20 sollte Sie jetzt nicht überraschen. Dieses 4 wird als Wert für "a" genommen, diese 5 als Wert für "b". Was wäre jetzt aber, wenn ich eine Variable habe, nennen wir sie mal "var1 = 3". Und ich rufe die Funktion "multi" wieder auf, aber der erste Parameter wird durch den Variablennamen dieser globalen Variable hier ersetzt. Wir gucken uns auch das Ergebnis an. Offensichtlich wird hier 3 mal 5 gerechnet und auch das Ergebnis ausgegeben. Das ist noch nicht der spannende Punkt. Der spannende Punkt ist, was würde passieren, wenn ich im Inneren dieser Funktion die Variable "a" jetzt manipuliere? Sie also verändere. Wird diese Variable außerhalb jetzt auch verändert oder nicht? Ich werde es demonstrieren. Ich mache "a+=1" eins und ich multipliziere danach "a" wieder mit "b", wir schauen uns das an. Die Ergebnisse hier 25 und 20 sollten klar sein, ich bekomme "a" für den Wert 4, mache daraus die 5 und multipliziere dann 5*5. Ich bekomme hier den Wert 3, ich addiere 1 drauf, habe also 4, 4*5 ist 20. Soweit nachvollziehbar, denke ich. Was hat "var1" jetzt aber für ein Wert, nach dem Aufruf von "multi". Hat es den Wert 3 oder hat es den Wert 4? Denn offensichtlich wurden ja hier diese Parameter "a" übergeben oder technisch ausgedrückt, was haben wir hier bei der Übergabe von Parametern call-by-value oder call-by-reference? Denn das ist der Hintergrund dieser ganzen Geschichte. Schauen wir uns das an. Obwohl ich im Inneren der Funktion diesen Parameter hier manipuliert habe, ist die übergebene Variable nicht verändert worden. Und so etwas nennt man im allgemeinen call-by-value. Ein Referenz hätte einen Verweis auf die externe Variable übergeben und wäre dann wirklich verändert worden. In Python ist das aber nicht ganz so einfach, denn wir haben weder call-by-value noch call-by-reference, sondern eine Art Zwischending. Es sieht so aus wie call-by-value aber das Verfahren in Python nennt sich call-by-object oder auch call-by-object-reference oder auch call-by-sharing genannt. Ganz vereinfacht haben wir bei Python ein call-by-reference, das sich wie call-by-value verhält. Für Sie wichtig ist, verhält sich wie call-by-value, es wird also erst einmal nur eine Kopie übergeben und die außenliegende Variable wird nicht verändert.

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!