Am 12.11.2013 16:37, schrieb Torsten Bronger:
Hallöchen!
Alexander Langer schreibt:
[...]
Es geht um die Semantik. Ich halte die Aussage, das sei call-by-value schlicht für falsch. Man kann sich darauf einigen, dass Python es anders macht und es meinteswegen call-by-assign nennen. Ungewohnt ist es trotzdem.
Jeder muß das anders in seinen Kopf kriegen. Meine Variante: Ich sage mir, Python macht grundsätzlich call-by-reference. Allerdings macht der *Zuweisungsoperator* was anderes als in C und Konsorten. (Nämlich Rebinding statt überschreiben einer Speicherzelle.) Damit kann man sich auch alles erklären ...
Man kann natürlich immer versuchen, Äpfel mit Birnen zu vergleichen. Aber manchmal ist es weder ein Apfel noch eine Birne sondern eine Quitte. :) Noch mal: Python verwendet weder call-by-reference noch call-by-value. Es ist call-by-object, auch genannt call-by-object-sharing oder call-by-sharing. http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_sharing