Beauftragungsschreiben Muster

die Werte von a und b. In Sprachen ohne parallele Zuweisung müsste dies geschrieben werden, um eine temporäre Variable Zuweisungen zu verwenden, die es einer Variablen in der Regel ermöglichen, während ihrer Lebensdauer und ihres Gültigkeitsbereichs unterschiedliche Werte zu unterschiedlichen Zeiten zu halten. Einige Sprachen (hauptsächlich streng funktionsfähig) erlauben diese Art der “destruktiven” Neuzuweisung jedoch nicht, da sie Änderungen des nichtlokalen Zustands implizieren könnte. Ziel ist es, referenzielle Transparenz zu erzwingen, d. h. Funktionen, die nicht vom Zustand einiger Variablen abhängen, sondern zu jedem Zeitpunkt die gleichen Ergebnisse für einen bestimmten Satz parametrischer Eingaben erzeugen. Moderne Programme in anderen Sprachen verwenden oft auch ähnliche Strategien, wenn auch weniger streng und nur in bestimmten Teilen, um die Komplexität zu reduzieren, in der Regel in Verbindung mit ergänzenden Methoden wie Datenstrukturierung, strukturierte Programmierung und Objektorientierung. In Python sind Zuweisungsanweisungen keine Ausdrücke und haben daher keinen Wert. Stattdessen sind verkettete Zuweisungen eine Reihe von Anweisungen mit mehreren Zielen für einen einzelnen Ausdruck. Die Zuweisungen werden von links nach rechts ausgeführt, so dass i = arr[i] = f() den Ausdruck f() auswertet, dann das Ergebnis dem linken Ziel i zuweist und dann das gleiche Ergebnis dem nächsten Ziel, arr[i], unter Verwendung des neuen Wertes i.[9] zuweist. Dies entspricht im Wesentlichen tmp = f(); i = tmp; arr[i] = tmp, obwohl keine tatsächliche Variable für den temporären Wert erzeugt wird. Die Ähnlichkeit in den beiden Symbolen kann zu Fehlern führen, wenn der Programmierer vergisst, welche Form (“=”, “==”, “=”) geeignet ist, oder falsche Typen “=” wenn “==” beabsichtigt war. Dies ist ein häufiges Programmierproblem mit Sprachen wie C (einschließlich eines berühmten Versuchs, den Linux-Kernel hinter der Tür zu verorten),[22], bei dem der Zuweisungsoperator auch den zugewiesenen Wert zurückgibt (auf die gleiche Weise, wie eine Funktion einen Wert zurückgibt) und in Ausdrücken gültig verschachtelt werden kann.

Wenn die Absicht bestand, zwei Werte in einer if-Anweisung zu vergleichen, z. B. ist es sehr wahrscheinlich, dass eine Zuweisung einen Wert zurückgibt, der als boolescher true interpretiert werden kann. In diesem Fall wird die then-Klausel ausgeführt, was dazu führt, dass sich das Programm unerwartet verhält.