Eine neue stabile Version der beliebten Programmiersprache Python ist erschienen.
Python ist eine hochgradige Programmiersprache für allgemeine Anwendungen, die auf die Steigerung der Produktivität der Entwickler und die Lesbarkeit des Codes ausgerichtet ist. Zu den Hauptmerkmalen gehören dynamische Typisierung, automatisches Speichermanagement, vollständige Introspektion, Ausnahmebehandlungsmechanismus, Unterstützung für Multithreading und hochgradige Datentypen.
Python ist eine stabile und weit verbreitete Sprache. Sie wird in vielen Projekten und in verschiedenen Funktionen verwendet: als Hauptprogrammiersprache oder zur Erstellung von Erweiterungen und zur Integration von Anwendungen. Hauptanwendungsbereiche sind Webentwicklung, maschinelles Lernen und Datenanalyse, Automatisierung und Systemadministration. Momentan belegt Python den dritten Platz im Ranking TIOBE.
Hauptänderungen:
Ein neuer leistungsstarker Parser basierend auf PEG-Grammatiken.
In der neuen Version wurde der aktuelle Python-Parser, der auf LL(1)-Grammatiken basiert (kontextfreie Grammatik), durch einen neuen leistungsstarken und stabilen Parser basierend auf PEG (Präferenzgrammatik) ersetzt. Parser für Sprachen, die durch kontextfreie Grammatiken dargestellt werden, wie LR-Parser, erfordern einen speziellen Schritt der lexikalischen Analyse, der die Eingabedaten entsprechend Leerzeichen, Interpunktion usw. aufteilt. Dies ist notwendig, da diese Parser eine Voranalyse verwenden, um einige kontextfreie Grammatiken in linearer Zeit zu verarbeiten. PEG-Grammatiken erfordern keinen separaten lexikalischen Schritt, und die Regeln dafür können zusammen mit anderen Grammatikregeln festgelegt werden.
Neue Operatoren und Funktionen
Zwei neue Operatoren wurden zur eingebauten Klasse dict hinzugefügt: | zum Zusammenführen von Dictionaries und |= zum Aktualisieren.
Im Klassentyp str wurden zwei neue Funktionen hinzugefügt: str.removeprefix(präfix) und str.removesuffix(suffix).
Typ-Hinweis für eingebettete Sammlungstypen
In dieser Version wird die Unterstützung des Generator-Syntax in allen derzeit verfügbaren Standardkollektionen eingeschlossen.
def read_blog_tags(tags: list[str]) -> None:
for tag in tags:
print("Tag Name", tag)
Weitere Änderungen
PEP 573 Zugriff auf den Zustand des Moduls über C-Erweiterungsmethoden
PEP 593 Flexible Funktionen und Variablenanmerkungen
PEP 602 Python wechselt zu jährlichen stabilen Veröffentlichungen
PEP 614 Abschwächung der grammatikalischen Einschränkungen für Dekoratoren
PEP 615 Unterstützung der IANA-Datenbank für Zeitzonen in der Standardbibliothek
BPO 38379 Die Garbage Collection wird nicht bei wiederhergestellten Objekten blockiert
BPO 38692 os.pidfd_open zur Prozessverwaltung ohne Rennen und Signale;
BPO 39926 Unterstützung von Unicode auf Version 13.0.0 aktualisiert
BPO 1635741 Bei mehrfacher Initialisierung von Python im selben Prozess tritt kein Speicherleck mehr auf
Python-Sammlungen (range, tuple, set, frozenset, list, dict) wurden mit Hilfe des vektorbasierten Aufrufs PEP 590 beschleunigt
Einige Python-Module (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) verwenden jetzt eine mehrphasige Initialisierung, wie in PEP 489 definiert
Eine Reihe von Standardbibliotheksmodulen (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) verwenden jetzt ein stabiles ABI, wie in PEP 384 definiert.
Quelle: linux.org.ru
