Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind Zuweisungsausdrücke und wie funktionieren sie in Python?

Was sind Zuweisungsausdrücke und wie funktionieren sie in Python?

Susan Sarandon
Susan SarandonOriginal
2024-10-30 21:42:30181Durchsuche

What are Assignment Expressions and How Do They Work in Python?

Zuweisungsausdrücke in Python: Der „Walross“-Operator (=:)

In Python 3.8 eingeführt, stellen Zuweisungsausdrücke den „Walross“-Operator (:=) bereit eine bedeutende Sprachverbesserung, die Zuweisungen innerhalb von Verständnissen und Lambdas ermöglicht.

Syntax und Semantik

Ein Zuweisungsausdruck ist ein benannter Ausdruck der Form name := expr, wobei name ein Bezeichner und expr ist jeder gültige Ausdruck. Der Ausdruck wird mit dem Wert von expr ausgewertet und gleichzeitig dieser Wert dem Namen zugewiesen.

Begründung für die Einführung

Die Hauptmotivation für das Hinzufügen von Zuweisungsausdrücken war:

  • Erlauben Sie Zuweisungen in Kontexten, in denen herkömmliche Zuweisungen verboten waren, wie etwa Listenverständnisse und Lambdas.
  • Verbessern Sie das interaktive Debugging, indem Sie eine einfache Wertzuweisung erleichtern.

Verwendungsbeispiele

a) Bedingte Werte erhalten

Anstelle von:

<code class="python">command = input("> ")
while command != "quit":
    print("You entered:", command)
    command = input("> ")</code>

Zuweisungsausdrücke ermöglichen:

<code class="python">while (command := input("> ")) != "quit":
    print("You entered:", command)</code>

b) Vereinfachen des Listenverständnisses

Beispiel:

<code class="python">[(lambda y: [y, x/y])(x+1) for x in range(5)]</code>

Kann vereinfacht werden zu:

<code class="python">[[y := x+1, x/y] for x in range(5)]</code>

Hauptunterschiede zu regulären Zuweisungen

Zuweisungsausdrücke unterscheiden sich von regulären Zuweisungen in mehreren Aspekten:

  • Sie werden von rechts nach links ausgewertet.
  • Sie haben eine andere Priorität als Kommas.
  • Sie unterstützen keine Mehrfachziele, Zuweisungen zu nicht-einzelnen Namen oder iterierbares Packen/Entpacken.
  • Inline-Typanmerkungen und erweiterte Zuweisungen werden ebenfalls nicht unterstützt.

Das obige ist der detaillierte Inhalt vonWas sind Zuweisungsausdrücke und wie funktionieren sie in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn