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

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

Patricia Arquette
Patricia ArquetteOriginal
2024-11-01 13:05:02125Durchsuche

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

Zuweisungsausdrücke mit dem „Walross“-Operator: Eine Python 3.8-Funktion

Python 3.8 führte ein neues Konzept ein, das als „Zuweisungsausdrücke“ bekannt ist und den „:="-Operator verwendet , allgemein als „Walross“-Operator bezeichnet.

Syntax, Semantik und Grammatik

Ein Zuweisungsausdruck hat die Form name := expr, wobei expr ist ein beliebiger gültiger Python-Ausdruck und name ist ein Bezeichner. Die Semantik besteht darin, dass der Wert des Ausdrucks dem Namen zugewiesen wird und der Wert des Zuweisungsausdrucks auch derselbe ist wie der Ausdruck expr.

Rationale

Die primäre Motivation Der Zweck der Einführung von Zuweisungsausdrücken bestand darin, Zuweisungen innerhalb von Konstrukten wie Listenverständnissen und Lambda-Funktionen zu ermöglichen, die sie zuvor verboten hatten. Es erleichtert auch das interaktive Debuggen ohne Code-Refactoring.

Anwendungsfälle

a) Bedingte Werte abrufen:

  • Vorher:

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

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

b) Vereinfachung des Listenverständnisses :

  • Vorher:

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

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

Unterschiede zu regulären Zuweisungen

Zuweisungsausdrücke unterscheiden sich in mehrfacher Hinsicht von regulären Zuweisungen:

  • Es handelt sich eher um Ausdrücke als um Anweisungen.
  • Sie haben von rechts nach links Vorrang .
  • Sie unterscheiden sich in der Priorität rund um Kommas.
  • Sie unterstützen keine Mehrfachziele, Zuweisungen zu nicht einzelnen Namen, iterierbares Packen/Entpacken, Inline-Typanmerkungen oder erweiterte Zuweisungen.

Das obige ist der detaillierte Inhalt vonWas sind Zuweisungsausdrücke und wie funktionieren sie in Python 3.8?. 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