Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
modul:m323:learningunits:lu02:byvaluebyreference [2024/08/28 08:58] – [Beispiel 1: By Value mit Immutable Typen] kmaurizi | modul:m323:learningunits:lu02:byvaluebyreference [2024/08/28 09:03] (aktuell) – kmaurizi | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | |||
====== LU02d - By Value und By Reference in Python ====== | ====== LU02d - By Value und By Reference in Python ====== | ||
Zeile 49: | Zeile 48: | ||
Zu den veränderbaren Datentypen in Python gehören: | Zu den veränderbaren Datentypen in Python gehören: | ||
- | list (z.B. [1, 2, 3]) | + | * list (z.B. '' |
- | dict (z.B. {' | + | |
- | set (z.B. {1, 2, 3}) | + | |
Wenn eine Variable mit einem dieser Typen an eine Funktion übergeben wird, wird eine Referenz auf das Originalobjekt übergeben. Jede Änderung innerhalb der Funktion wirkt sich direkt auf das ursprüngliche Objekt aus. | Wenn eine Variable mit einem dieser Typen an eine Funktion übergeben wird, wird eine Referenz auf das Originalobjekt übergeben. Jede Änderung innerhalb der Funktion wirkt sich direkt auf das ursprüngliche Objekt aus. | ||
Zeile 62: | Zeile 62: | ||
""" | """ | ||
some_list.append(4) | some_list.append(4) | ||
+ | | ||
+ | | ||
if name == ' | if name == ' | ||
- | my_list = [1, 2, 3] | + | |
- | modify_list(my_list) | + | modify_list(my_list) |
- | print(f' | + | print(f' |
</ | </ | ||
Zeile 74: | Zeile 76: | ||
Die Art und Weise, wie Werte und Referenzen in Python übergeben werden, hat direkte Auswirkungen auf das Verhalten und die Vorhersagbarkeit des Codes: | Die Art und Weise, wie Werte und Referenzen in Python übergeben werden, hat direkte Auswirkungen auf das Verhalten und die Vorhersagbarkeit des Codes: | ||
- | Immutable Objekte: Änderungen in einer Funktion betreffen nur die lokale Kopie. Der Originalwert bleibt unverändert. | + | * **Immutable Objekte:** Änderungen in einer Funktion betreffen nur die lokale Kopie. Der Originalwert bleibt unverändert. |
- | Mutable Objekte: Änderungen in einer Funktion betreffen direkt das Originalobjekt. Dies kann zu unbeabsichtigten Seiteneffekten führen, wenn die Funktion den Zustand des Objekts verändert. | + | * **Mutable Objekte:** Änderungen in einer Funktion betreffen direkt das Originalobjekt. Dies kann zu unbeabsichtigten Seiteneffekten führen, wenn die Funktion den Zustand des Objekts verändert. |
Um ungewollte Seiteneffekte zu vermeiden, sollten Sie sich der Datenarten bewusst sein, die Sie in Funktionen verwenden, und überlegen, ob das Objekt unverändert bleiben soll oder nicht. | Um ungewollte Seiteneffekte zu vermeiden, sollten Sie sich der Datenarten bewusst sein, die Sie in Funktionen verwenden, und überlegen, ob das Objekt unverändert bleiben soll oder nicht. | ||