Eine neue stabile Version der beliebten Programmiersprache Python ist erschienen.
Python ist eine hochgradige, objektorientierte Programmiersprache, die darauf abzielt, die Produktivität der Entwickler und die Lesbarkeit des Codes zu verbessern. Zu den Hauptmerkmalen gehören dynamische Typisierung, automatische Speicherverwaltung, umfassende Introspektion, ein Exceptions-Handling-Mechanismus sowie Unterstützung für Multithreading und Hochleistungsdatenstrukturen.
Python ist eine stabile und weit verbreitete Sprache. Sie wird in vielen Projekten und in verschiedenen Funktionen eingesetzt: als Hauptprogrammiersprache oder zur Erstellung von Erweiterungen und zur Integration von Anwendungen. Die Hauptanwendungsbereiche sind Webentwicklung, maschinelles Lernen und Datenanalyse, Automatisierung sowie Systemadministration. Derzeit belegt Python den dritten Platz im TIOBE.
Wesentliche Änderungen:
Ein neuer leistungsstarker Parser auf der Basis von PEG-Grammatiken.
In der neuen Version wurde der bestehende Python-Parser, der auf LL(1) Grammatik (kontextfreie Grammatik) basiert, durch einen neuen leistungsstarken und stabilen Parser auf PEG-Basis (Parser für reguläre Grammatik) ersetzt. Parser für Sprachen, die durch kontextfreie Grammatiken dargestellt werden, wie z. B. LR-Parser, erfordern einen separaten lexikalischen Analyseprozess, der die Eingabedaten entsprechend Leerzeichen, Interpunktion und so weiter zerlegt. Dies ist notwendig, da diese Parser eine Voranalyse benutzen, um bestimmte kontextfreie Grammatiken in linearer Zeit zu verarbeiten. Reguläre Grammatiken benötigen keinen separaten lexikalischen Analyseprozess, und die Regeln dafür können gemeinsam mit anderen Grammatikregeln festgelegt werden.
Neue Operatoren und Funktionen
Der eingebaute dict-Klasse wurden zwei neue Operatoren hinzugefügt: | zum Zusammenführen von Wörterbüchern und |= zum Aktualisieren.
Der Klasse str wurden zwei neue Funktionen hinzugefügt: str.removeprefix(präfix) und str.removesuffix(suffix).
Typ-Hinweise für eingebaute Sammlungstypen
In diesem Release wurde die Unterstützung der Generator-Syntax in allen derzeit verfügbaren Standardkollektionen hinzugefügt.
def read_blog_tags(tags: list[str]) -> None:
for tag in tags:
print("Tag Name", tag)
Weitere Änderungen
PEP 573 Zugriff auf den Modulstatus über C-Extensions
PEP 593 Flexible Funktionen und Variablenanmerkungen
PEP 602 Python wechselt zu jährlichen stabilen Releases
PEP 614 Abschwächung grammatikalischer Einschränkungen für Dekoratoren
PEP 615 Unterstützung der IANA-Datenbank für Zeitzonen in der Standardbibliothek
BPO 38379 Die Garbage Collection wird bei wiederhergestellten Objekten nicht blockiert
BPO 38692 os.pidfd_open, zur Prozessverwaltung ohne Rennen und Signale
BPO 39926 Unterstützung für Unicode auf Version 13.0.0 aktualisiert
BPO 1635741, bei mehrfacher Initialisierung von Python im gleichen Prozess tritt kein Speicherleck mehr auf
Python-Collections (range, tuple, set, frozenset, list, dict) wurden durch vektorisierten Aufruf PEP 590 beschleunigt
Einige Python-Module (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) verwenden jetzt mehrstufige Initialisierung, wie in PEP 489 definiert
Eine Reihe von Standardbibliotheksmodulen (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) verwenden nun das stabile ABI, das in PEP 384 definiert ist.
Quelle: linux.org.ru
