Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
modul:m323:learningunits:lu02:byvaluebyreference [2026/08/18 11:00] – Codefehler korrigiert: if __name__ == '__main__' adminmodul:m323:learningunits:lu02:byvaluebyreference [2026/08/25 09:00] (aktuell) – Interaktive Animation zum Speichermodell ergänzt admin
Zeile 4: Zeile 4:
  
 In Python ist es wichtig zu verstehen, wie Daten zwischen Funktionen und Variablen übergeben werden. Python verwendet sowohl ''By Value'' als auch ''By Reference'' Mechanismen, abhängig vom Datentyp. Das Verständnis dieser Konzepte hilft, den Programmfluss und das Verhalten von Variablen in verschiedenen Kontexten besser zu verstehen. In Python ist es wichtig zu verstehen, wie Daten zwischen Funktionen und Variablen übergeben werden. Python verwendet sowohl ''By Value'' als auch ''By Reference'' Mechanismen, abhängig vom Datentyp. Das Verständnis dieser Konzepte hilft, den Programmfluss und das Verhalten von Variablen in verschiedenen Kontexten besser zu verstehen.
 +
 +===== Animation: Was im Speicher wirklich passiert =====
 +
 +Die folgende Animation zeigt Schritt für Schritt, was beim Aufruf einer Funktion im Arbeitsspeicher geschieht – einmal mit einer Zahl (''int'') und einmal mit einer Liste (''list''). Links sehen Sie die **Namen** (Variablen), rechts die **Objekte**; ein Pfeil bedeutet «dieser Name zeigt auf dieses Objekt».
 +
 +Klicken Sie sich mit **Weiter** durch beide Beispiele und vergleichen Sie insbesondere **Schritt 3**: Bis dorthin sind die beiden Abläufe identisch – erst dort trennen sich die Wege.
 +
 +{{url>https://templates-python.github.io/m323_html/lu02/byvalue-byreference.html 100%,780px noborder|Animation: By Value und By Reference}}
  
 ===== By Value ===== ===== By Value =====
Zeile 39: Zeile 47:
  
 Hier bleibt die ursprüngliche Variable ''a'' unverändert, da ''int'' ein unveränderlicher Typ ist. Die Änderung findet nur in der Kopie innerhalb der Funktion statt, und der ursprüngliche Wert bleibt erhalten. Hier bleibt die ursprüngliche Variable ''a'' unverändert, da ''int'' ein unveränderlicher Typ ist. Die Änderung findet nur in der Kopie innerhalb der Funktion statt, und der ursprüngliche Wert bleibt erhalten.
 +
 +<WRAP center round info 90%>
 +**Genauer betrachtet:** Streng genommen kopiert Python auch hier nichts – auch der ''int'' wird als Referenz übergeben (siehe Schritt 2 der Animation). Weil ''int'' aber //immutable// ist, kann ''x += 10'' das Objekt gar nicht verändern und erzeugt stattdessen ein neues. Das Ergebnis sieht deshalb aus wie ''By Value''.
 +</WRAP>
  
 ===== By Reference ===== ===== By Reference =====
  • modul/m323/learningunits/lu02/byvaluebyreference.1787043658.txt.gz
  • Zuletzt geändert: 2026/08/18 11:00
  • von admin