Python 3.15 erhält seinen ersten Alpha-Build: Das ist neu

/de/images/python-logo-over-blurred-python-code-background-with-the-word-python-written-in-yellow-underneath.png

Die Veröffentlichung von Python 3.15.0 Alpha 1 auf GitHub markiert den Beginn der offiziellen Vorschau- und Testphase für die nächste Feature-Version der Sprache. Diese Alpha-Version gibt einen ersten Einblick in die neuen Änderungen, die die Sprache schneller und viel einfacher machen werden.

Eine der größten und aufregendsten neuen Funktionen in Python 3.15 ist der neue statistische Sampling-Profiler. Dies ist eine gewaltige Änderung, die das Leben vieler Entwickler viel einfacher machen wird. Im Gegensatz zu älteren deterministischen Profilern, die Ihren Code verlangsamen können, indem sie jeden Funktionsaufruf instrumentieren, bietet dies praktisch keinen Overhead. Dies ist ein entscheidender Faktor beim Debuggen von Leistungsproblemen, insbesondere in Produktionsumgebungen.

Das Besondere an diesem Profiler ist, dass er regelmäßig Stack-Traces von laufenden Python-Prozessen erfasst, anstatt jeden Funktionsaufruf zu instrumentieren. Sie können es an jeden laufenden Python-Prozess anhängen, sodass Sie Ihren Code nicht ändern oder den Prozess nicht einmal neu starten müssen, um zu sehen, was vor sich geht. Dieser ist sehr schnell und erreicht Abtastraten von bis zu 1.000.000 Hz, was ihn zum schnellsten Sampling-Profiler für Python macht.

Der Profiler generiert statistische Schätzungen der aufgewendeten Zeit, liefert Stichprobenstatistiken in Echtzeit und ist flexibel genug, um sowohl detaillierte Statistiken als auch Flamegraph-Daten auszugeben. Es kann sogar Thread-bewusstes Profiling verarbeiten, sodass Sie alle Threads oder nur den Hauptthread profilieren können.

Eine weitere große und ehrlich gesagt längst überfällige Sprachänderung besteht darin, dass Python jetzt UTF-8 als Standardkodierung verwendet. Diese Änderung ist unabhängig von der Umgebung Ihres Systems, was einen großen Kompatibilitätsvorteil darstellt. Für diejenigen unter uns, die im Laufe der Jahre mit komplizierten Codierungsfehlern zu kämpfen hatten, bedeutet dies, dass die meisten E/A-Vorgänge ohne explizite Codierung jetzt automatisch UTF-8 verwenden. Da UTF-8 im Grunde zum De-facto-Standard für die Darstellung von Text im Web, in Dateiformaten und in Programmiersprachen geworden ist, ist dieser Schritt sehr sinnvoll.

Denken Sie daran, dass Sie, wenn Sie die beste Kompatibilität zwischen verschiedenen Python-Versionen wünschen, dennoch explizit ein Codierungsargument angeben sollten. Wenn Sie jedoch wirklich das bisherige Verhalten beibehalten müssen, können Sie den UTF-8-Modus von Python mithilfe einer Umgebungsvariablen oder einer Befehlszeilenoption deaktivieren.

Python 3.15 bringt außerdem einige clevere Verbesserungen an seinen Fehlermeldungen mit. Der Interpreter wird immer intelligenter, insbesondere wenn es um AttributeError-Ausnahmen geht. Wenn Sie versuchen, auf ein Attribut zuzugreifen, das nicht existiert, aber ein ähnliches Attribut über ein Mitglied dieses Objekts verfügbar ist, erhalten Sie jetzt in der Fehlermeldung einen hilfreichen Vorschlag. Wenn Sie beispielsweise ein Container-Objekt mit einem inneren Objekt haben, das über eine Bereichseigenschaft verfügt, und Sie versehentlich „container.area“ aufrufen, lautet die Fehlermeldung nun: „Meinten Sie: ‚inner.area‘?“.

Darüber hinaus haben einige Standardmodule ein schönes Facelift erhalten. Beispielsweise unterstützen die Kalenderseiten, die von Calendar.HTMLCalendar generiert werden, jetzt den Dunkelmodus und verwenden den HTML5-Standard für eine bessere Barrierefreiheit. Ebenso verfügt difflib.unified_diff() jetzt über einen optionalen Farbparameter, um eine Farbausgabe zu erhalten, die dem ähnelt, was Sie in git diff sehen würden.

Diese erste Alpha ist bereits auf Github verfügbar und ist der erste Schritt auf einem langen Weg von Vorabversionen, die zur endgültigen stabilen Version führen. Bedenken Sie, dass der voraussichtliche endgültige Veröffentlichungstermin noch in weiter Ferne liegt, nämlich der 1. Oktober 2026.

Quelle: Python-Dokumente

*️⃣ Quelllink:

verfügbar auf Github, Python-Dokumente,