Zuweisungsausdrücke in Python 3.8 verstehen
Seit Python 3.8 hat der „Walross“-Operator (:=) Zuweisungsausdrücke in die Sprache eingeführt. Mit dieser neuen Funktion können Programmierer Werte innerhalb von Verständnissen und Lambda-Funktionen zuweisen, die zuvor auf reguläre Zuweisungen beschränkt waren.
Begründung für Zuweisungsausdrücke
Die Hauptmotivation hinter Zuweisungsausdrücken besteht darin, prägnantere und präzisere Zuweisungen zu ermöglichen Effizienter Code in Szenarien, in denen herkömmliche Zuweisungen nicht unterstützt werden. Zuweisungsausdrücke ermöglichen beispielsweise Folgendes:
-
Erfassung bedingter Werte: Bedingte Werte können prägnanter abgerufen werden, wie das interaktive Debugging-Beispiel in der Python-Dokumentation zeigt.
-
Vereinfachte Listenverständnisse: Komplexe Listenverständnisse können vereinfacht werden, indem Variablen innerhalb des Verständnisses Zwischenwerte zugewiesen werden, wodurch der Code lesbarer und verwaltbarer wird.
Syntax, Semantik, und Grammatik
Zuweisungsausdrücke folgen einer bestimmten Syntax: name := expr, wobei name ein Bezeichner und expr ein beliebiger gültiger Python-Ausdruck ist. Der Wert des Zuweisungsausdrucks ist derselbe wie der Ausdruck expr, aber ein zusätzlicher Nebeneffekt weist den Wert dem Zielnamen zu.
Zuweisungsausdrücke unterscheiden sich von regulären Zuweisungsanweisungen in mehreren wichtigen Aspekten:
- Sie sind Ausdrücke, keine Aussagen und können daher in Kontexten erscheinen, in denen Ausdrücke erwartet werden.
- Sie haben eine andere Auswertungsreihenfolge (von rechts nach links) und eine andere Priorität im Vergleich zu regulären Zuweisungen.
- Sie unterstützen nicht mehrere Ziele, Zuweisungen zu nicht-einzelnen Namen, iterierbares Packen/Entpacken, Inline-Typanmerkungen oder erweiterte Zuweisungsvorgänge.
Gründe für die Einführung von Zuweisungsausdrücken
Obwohl PEP 379, das ein ähnliches Konzept vorschlug, zurückgezogen wurde, führte PEP 572 aus mehreren Gründen Zuweisungsausdrücke in Python ein:
- Um die Lesbarkeit und Wartbarkeit des Codes zu verbessern, insbesondere innerhalb von Verständnis- und Lambdas.
- Um interaktives Debuggen zu ermöglichen, ohne dass Code-Refactoring erforderlich ist.
- Um eine effizientere Möglichkeit zur Zuweisung bedingter Werte und zur Vereinfachung des Listenverständnisses bereitzustellen.
- Um die Python-Syntax auszurichten mit anderen modernen Programmiersprachen, die Zuweisungsausdrücke unterstützen.
Das obige ist der detaillierte Inhalt vonWas sind Zuweisungsausdrücke und warum wurden sie in Python 3.8 eingeführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!