Python 3.8-Veröffentlichung

Die interessantesten Neuerungen:

  • Zuweisungsausdruck:

    Mit dem Operator new := können Sie Variablen innerhalb von Ausdrücken Werte zuweisen. Zum Beispiel:
    wenn (n := len(a)) > 10:
    print(f"Liste ist zu lang ({n} Elemente, erwartet <= 10)")

  • Nur positionelle Argumente:

    Sie können jetzt angeben, welche Funktionsparameter über die Syntax benannter Argumente übergeben werden können und welche nicht. Beispiel:
    def f(a, b, /, c, d, *, e, f):
    print(a, b, c, d, e, f)

    f(10, 20, 30, d=40, e=50, f=60) # OK
    f(10, b=20, c=30, d=40, e=50, f=60) # Fehler, „b“ kann kein benanntes Argument sein
    f(10, 20, 30, 40, 50, f=60) # Fehler, „e“ muss ein benanntes Argument sein

    Diese Änderung bietet Entwicklern die Möglichkeit, Benutzer ihrer APIs vor Änderungen an Funktionsargumentnamen zu schützen.

  • Unterstützen Sie f-strings = für selbstdokumentierende Ausdrücke und Debugging:

    Zucker hinzugefügt, um das Debuggen/Protokollieren von Nachrichten zu vereinfachen.
    n = 42
    print(f'Hallo Welt {n=}.')
    # gibt „Hallo Welt n=42“ aus.

  • Das Schlüsselwort continue im „finally“-Block wurde korrigiert (es funktionierte vorher nicht).

Andere:

  • Sie können anstelle des Standardpfads __pycache__ explizit den Pfad zum Bytecode-Cache angeben.
  • Debug- und Release-Builds verwenden dasselbe ABI.

Source: linux.org.ru

Kommentar hinzufügen