Die neue stabile Version von Python 3.12 ist da und das sind die neuen Funktionen

Python-Logo

Python ist eine Programmiersprache auf hohem Niveau.

Nach einem Jahr der Entwicklung, Die Veröffentlichung der stabilen Version wurde angekündigt und auch der Beginn der Alpha-Testphase der Programmiersprache Python 3.12 bzw. Python 3.13. Es wird erwähnt, dass dieser neue Zweig von Python 3.12 eineinhalb Jahre lang unterstützt wird. Danach werden für weitere dreieinhalb Jahre Korrekturen zur Beseitigung von Schwachstellen generiert.

Die vorgestellte neue Version von Python 3.12 bringt Verbesserungen in der Flexibilität der F-String-Analyse. Mit dieser Verbesserung jetzt Viele Einschränkungen können außer Acht gelassen werden, da Sie jetzt beispielsweise jeden gültigen Ausdruck in Python enthalten können, einschließlich mehrzeiliger Ausdrücke, Kommentare, Backslashes und Unicode-Escape-Sequenzen. Darüber hinaus ermöglichen interne Zeichenfolgen jetzt die Wiederverwendung derselben Anführungszeichen, d. h. doppelte Anführungszeichen können jetzt im Inneren wiederverwendet werden ohne in einfache Anführungszeichen wechseln zu müssen.

Por ejemplo:

f"""{f'''{f'{f"{1+1}"}'}'''}"""

Es ist nun möglich, beliebig zu verschachteln:

f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"

Eine weitere herausragende Änderung ist die Unterstützung für isolierte Subinterpreter und separate globale Sperren, die die Effizienz der Ressourcennutzung in Multicore-Systemen steigern sollen, da CPython für verschiedene Interpreter innerhalb eines Prozesses die gleichzeitige Ausführung mehrerer Interpreter in einem Prozess ermöglicht. Derzeit ist die Funktion nur über die C-API verfügbar (Python-API-Unterstützung wird im nächsten großen Zweig verfügbar sein).

Darüber hinaus wird auch darauf hingewiesenDer informative Inhalt von Fehlermeldungen wurde erhöht Außerdem wurde das Spektrum der Ausnahmen erweitert und bietet Empfehlungen zur Beseitigung von Tippfehlern. Beispielsweise werden jetzt Vorschläge zum Importieren vergessener Standardbibliotheksmodule und Vorschläge zum Präfix „self“ angezeigt.

Es wurde die Möglichkeit hinzugefügt, das Pufferprotokoll im Python-Code zu verwenden. Klassen, die eine „__buffer__()“-Methode bereitstellen, können jetzt als Typen verwendet werden, die direkt mit Binärdaten im Speicher arbeiten.

Das Modul sys.monitoring wird zum Debuggen und Profiling vorgeschlagen, So können Sie Ereignisse in CPython wie Aufrufe, Funktionsrückgaben, Ausführung beliebiger Codezeilen, Ausnahmen und Übergänge mit minimalem Overhead überwachen.

Der Interpreter implementiert die Unterstützung für das Leistungssubsystem des Linux-Kernels, wodurch Python-Funktionsnamen bei der Profilerstellung mit dem Leistungsdienstprogramm ermittelt werden können (zuvor wurden nur C-Funktionsnamen in Traces ermittelt).

In Bezug auf Leistungsverbesserungen wird Folgendes erwähnt Optimierungen fortgesetzt, mit welchem Insgesamt wurde eine Leistungssteigerung von schätzungsweise 5 % erzielt., es wurde auch hinzugefügt experimentelle Unterstützung für den BOLT-Binäroptimierer zum Build-Prozess, wodurch die Leistung um 1–5 % gesteigert wurde, während sich die Leistung des Asyncio-Pakets erheblich verbessert hat (einige Tests zeigen eine Beschleunigung von 75 %).

Es wurde eine Inline-Erweiterung von Listenverständnissen implementiert, die die Arbeit mit Listenverständnissen um das Zweifache beschleunigt (bei Code, der Listenverständnisse aktiv nutzt, ergaben Tests eine Gesamtleistungssteigerung von 11 %).

Um die Sicherheit zu verbessern, eingebaute Implementierungen von Die Algorithmen SHA1, SHA3, SHA2-384, SHA2-512 und MD5 in Hashlib wurden ersetzt mit formal verifizierten Optionen aus dem HACL*-Projekt (integrierte Implementierungen werden nur verwendet, wenn OpenSSL nicht verfügbar ist).

Der andere Änderungen das fällt auf:

  • Das Modul verfügt über eine erweiterte Unterstützung für Windows.
  • Python implementiert einen Stapelüberlaufschutz.
    Die Erstellung der Klasse asyncio.Task wurde beschleunigt.
  • Die Größe von Unicode-Objekten wurde um 8 auf 16 Bytes reduziert.
  • Operationen mit regulären Ausdrücken re.sub(), re.subn() und re.Pattern wurden beschleunigt.
  • Die Ausführung von isinstance()-Prüfungen für einige Protokolle wurde um das Zwei- bis Zwanzigfache beschleunigt.
  • Die Funktionen tokenize.tokenize() und tokenize.generate_tokens() wurden deutlich beschleunigt (in einigen Tests bis zu 64 %).
  • Das Laden von Attributen und der Aufruf der super()-Methode wurden beschleunigt.
  • Für generische Klassen und Funktionen wurde eine neue, kompaktere Typannotationssyntax vorgeschlagen.
  • Das Webbrowser-Modul unterstützt ältere Browser wie Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird und Firefox bis Version 36 nicht mehr.
  • In Vorbereitung auf zukünftige Optimierungen wurde die interne Darstellung von Ganzzahlen geändert.

Zu guter Letzt hat, wie bereits erwähnt, der Alpha-Test von Python 3.13 begonnen, in dem ein Kompilierungsmodus erschien CPython ohne globale Interpretersperre (GIL, Global Interpreter Lock).

Die Branche Python 3.13 wird sieben Monate lang in der Alpha-Phase sein, Während dieser Zeit werden gemäß dem neuen Entwicklungsplan neue Funktionen hinzugefügt und Fehler behoben. Die Arbeit an einem neuen Zweig beginnt fünf Monate vor der Veröffentlichung des vorherigen Zweigs und bis die nächste Version die Testphase Alpha erreicht.

Danach werden die Beta-Versionen drei Monate lang getestet, wobei das Hinzufügen neuer Funktionen verboten ist und alle Aufmerksamkeit auf die Behebung von Fehlern gerichtet wird. In den letzten zwei Monaten vor der Veröffentlichung befindet sich der Zweig im Release-Candidate-Stadium, in dem die endgültige Stabilisierung erfolgt.

Endlich ja Sie möchten mehr darüber erfahrenkönnen Sie die Details in der überprüfen folgenden Link