Zum Inhalt springen

Eintrag 005

Python 3.15: was neu ist und ob sich das Update lohnt

Thema
PythonUpdate
Veröffentlicht
Lesezeit
5 Min.
Getestet mit
Python 3.15.0 (macOS)

Python 3.15 ist am 9. Oktober 2026 erschienen. Für Einsteiger ist die größte Neuerung, dass Fehlermeldungen jetzt oft gleich die Lösung vorschlagen. Dazu kommen frozendict, ein Dictionary, das sich nicht ändern lässt, und UTF-8 als Standard beim Öffnen von Dateien. Ich würde mich darüber informieren, aber nicht gleich auf den Zug aufspringen.

Was ist neu in Python 3.15?

Die vollständige Liste steht in den offiziellen Release-Notes zu Python 3.15 (öffnet in neuem Tab). Für den Anfang reichen diese Punkte:

  • Fehlermeldungen schlagen bei vertippten oder falschen Methoden die richtige vor.
  • frozendict ist ein neuer eingebauter Typ für Dictionarys, die gleich bleiben sollen.
  • open() liest und schreibt ohne Angabe immer UTF-8, auf jedem System.

Der Rest ist eher etwas für später. Mit lazy import json lädt Python ein Modul erst, wenn du es zum ersten Mal benutzt, das verkürzt den Start großer Programme. sentinel ist ein Typ für eindeutige Platzhalterwerte. Der JIT-Compiler ist laut Ankündigung auf blog.python.org (öffnet in neuem Tab) deutlich schneller geworden, bleibt aber experimentell. Und es gibt mit Tachyon einen neuen Profiler.

Bessere Fehlermeldungen mit Vorschlägen

Rufst du eine Methode auf, die es in Python nicht gibt, hat Python bisher nur genau das gemeldet. Python 3.15 sagt in vielen Fällen dazu, was du wahrscheinlich gemeint hast:

Code 01 · Python
zahlen = [1, 2, 3]
zahlen.push(4)
Text
AttributeError: 'list' object has no attribute 'push'. Did you mean '.append'?

push kennen viele aus JavaScript, in Python heißt die Methode append. Unter Python 3.14 endet dieselbe Meldung nach 'push', ohne Vorschlag. Ich habe ein paar typische Fehler mit beiden Versionen ausprobiert:

CodePython 3.15 ergänzt
zahlen.push(4)Did you mean '.append'?
name.toUpperCase()Did you mean '.upper'?
spieler.put("level", 3)Use d[k] = v.
(1, 2, 3).append(4)Did you mean to use a 'list' object?

Das finde ich die interessanteste Neuerung, gerade für Anfänger ist ein Vorschlag direkt im Terminal eine große Hilfe. Nicht jeder Fehler bekommt einen: Bei spieler.add("level", 3) auf einem Dictionary gibt es auch unter 3.15 keinen Vorschlag.

Mehr Beispiele stehen im Abschnitt Improved error messages (öffnet in neuem Tab) der Release-Notes.

frozendict: ein Dictionary, das sich nicht ändern lässt

Ein frozendict funktioniert beim Lesen wie ein normales Dictionary. Ändern kannst du es nach dem Anlegen nicht mehr. Das passt für Werte, die während des ganzen Programms gleich bleiben sollen, zum Beispiel die Einstellungen eines kleinen Spiels:

Code 02 · Python
EINSTELLUNGEN = frozendict(breite=800, hoehe=600, fps=60)
print(EINSTELLUNGEN["fps"])

langsam = EINSTELLUNGEN | {"fps": 30}
print(langsam)
print(EINSTELLUNGEN)
Ausgabe
60
frozendict({'breite': 800, 'hoehe': 600, 'fps': 30})
frozendict({'breite': 800, 'hoehe': 600, 'fps': 60})

Mit | bekommst du eine neue Kopie mit geändertem Wert, das Original bleibt, wie es war. Versuchst du dagegen, einen Wert direkt zu überschreiben, bricht Python ab:

Code 03 · Python
EINSTELLUNGEN["fps"] = 30
Text
TypeError: 'frozendict' object does not support item assignment

Bei einem normalen Dictionary würde diese Zeile einfach durchlaufen, und dein Spiel liefe ab da unbemerkt mit 30 statt 60 Bildern pro Sekunde. Mit frozendict fällt so ein Fehler sofort auf, genau an der Stelle, an der er passiert. Das meint der Satz „Errors should never pass silently“ aus dem Zen of Python.

UTF-8 als Standard beim Öffnen von Dateien

Wenn du eine Datei mit open("notizen.txt") öffnest und keine Kodierung angibst, nimmt Python 3.15 immer UTF-8. Vorher hing das vom System ab. Auf dem Mac und unter Linux war es meist schon UTF-8, unter Windows oft nicht, und dann kamen Umlaute aus Dateien kaputt an. Ich programmiere fast nur auf dem Mac und habe das unter Windows nicht getestet.

Wenn du die Kodierung selbst hinschreibst, verhält sich dein Code unter jeder Python-Version gleich:

Code 04 · Python
with open("notizen.txt", encoding="utf-8") as datei:
    text = datei.read()

Wie du zum alten Verhalten zurückkommst, steht in den Release-Notes unter UTF-8 als Standard (öffnet in neuem Tab).

Läuft meine venv-Anleitung mit Python 3.15?

Ja. Ich habe die Schritte aus meinem Beitrag zur Python venv auf dem Mac mit 3.15 durchgespielt: venv anlegen, aktivieren, Paket mit pip installieren, requirements.txt schreiben. Alles läuft wie unter 3.14. Unter Windows habe ich es noch nicht getestet.

Aufgefallen ist mir dabei etwas bei der Installation über Homebrew:

Code 05 · Terminal
brew install python@3.15
python3 --version

Danach meldete python3 sofort 3.15.0, nicht mehr 3.14. Wer also python3 -m venv .venv tippt, bekommt ab jetzt eine venv mit 3.15. Möchtest du die Version ausdrücklich festlegen, schreib sie in den Befehl:

Code 06 · Terminal
python3.15 -m venv .venv

Bestehende venvs sind nicht betroffen. Eine venv merkt sich die Python-Version, mit der du sie angelegt hast. Meine bisherigen venvs laufen weiter mit 3.14.

Lohnt sich das Update auf Python 3.15?

Ich würde jedem raten, sich über die Neuerungen zu informieren, aber nicht gleich auf den Zug aufzuspringen. Vor allem größere Projekte würde ich nicht einfach umstellen, sondern vorher testen oder noch etwas Zeit vergehen lassen.

Wenn du auf dem Mac IDLE oder andere Programme mit tkinter nutzt: Unter macOS 27.0 können sie hängen, sobald ein Menübefehl einen Dialog öffnet. Das liegt laut Ankündigung an einer Änderung in macOS und betrifft alle aktuellen Python-Versionen, nicht nur 3.15. Ich nutze beides gerade nicht und konnte es deshalb nicht selbst prüfen.

Mehr zu Python findest du auf der Python-Themenseite.

Häufige Fragen

Wann ist Python 3.15 erschienen?

Python 3.15.0 ist am 9. Oktober 2026 erschienen. Du lädst es auf python.org (öffnet in neuem Tab) herunter, auf dem Mac geht es auch über Homebrew mit brew install python@3.15.

Sollte ich auf Python 3.15 updaten?

Informier dich über die Neuerungen, aber steig nicht sofort um. Vor allem größere Projekte würde ich nicht einfach umstellen, sondern vorher testen oder noch etwas Zeit vergehen lassen.

Funktioniert venv mit Python 3.15?

Ja. Auf dem Mac habe ich mit 3.15 eine venv angelegt, aktiviert, Pakete mit pip installiert und eine requirements.txt geschrieben. Alles läuft wie unter 3.14. Bestehende venvs bleiben bei der Python-Version, mit der du sie angelegt hast.

Hat dir der Beitrag geholfen?

Fehler gefunden oder eine Frage zum Code? Schreib einen Kommentar oder eine E-Mail.

Kommentare

Du brauchst kein Konto. Name und E-Mail sind freiwillig, die E-Mail-Adresse wird nicht angezeigt. Ich lese jeden Kommentar, bevor er erscheint. Mehr dazu im Datenschutz.

Mehr zu Python