{"id":477676,"date":"2025-10-06T15:05:11","date_gmt":"2025-10-06T15:05:11","guid":{"rendered":"https:\/\/www.europesays.com\/de\/477676\/"},"modified":"2025-10-06T15:05:11","modified_gmt":"2025-10-06T15:05:11","slug":"python-3-14-leichtgaengiges-programmieren-steht-im-fokus","status":"publish","type":"post","link":"https:\/\/www.europesays.com\/de\/477676\/","title":{"rendered":"Python 3.14: Leichtg\u00e4ngiges Programmieren steht im Fokus"},"content":{"rendered":"<p>Nach dem dritten und finalen Release Candidate will die Python Software Foundation am 7. Oktober die stabile Version 3.14 der Programmiersprache ver\u00f6ffentlichen. Sie erh\u00e4lt Support bis Oktober 2027 und wird bis Oktober 2030 mit Sicherheitspatches versorgt.<\/p>\n<p>Version 3.14 der Open-Source-Sprache wartet mit Neuerungen wie Template Strings (T-Strings) und Lazy Annotations auf. Dazu kommen zahlreiche in der Verst\u00e4ndlichkeit verbesserte Fehlermeldungen. Diese fokussieren sich auf die h\u00e4ufigsten Fehler der Python-Entwicklerinnen und -Entwickler. Das soll verhindern, dass das Debugging in Detektivarbeit ausartet.<\/p>\n<p>Au\u00dferdem ist der <a class=\"heiseplus-lnk\" href=\"https:\/\/www.heise.de\/hintergrund\/Python-3-13-Mehr-Performance-ohne-GIL-10224222.html\" target=\"_blank\" rel=\"noopener\">in Version 3.13 eingef\u00fchrte Free-Threaded-Modus<\/a> mit der neuen Version nun offiziell freigegeben. <\/p>\n<p><strong>Error: Konkrete Verbesserungsvorschl\u00e4ge<\/strong><\/p>\n<p>Die verbesserten Fehlermeldungen von Python 3.14 ber\u00fccksichtigen die Fehlermeldungstypen SyntaxError, ValueError sowie TypeError, erkl\u00e4ren jeweils genauer als zuvor, was falsch ist, und machen dar\u00fcber hinaus gleich Verbesserungsvorschl\u00e4ge.<\/p>\n<p>Ein Beispiel daf\u00fcr sind die neuen elif-nach-else-Fehlermeldungen: Folgt ein elif-Block nach einem else-Block, meldet Python jetzt explizit, dass dies nicht erlaubt ist. Die Fehlermeldung weist zudem auf die korrekte Reihenfolge von if, elif und else hin.<\/p>\n<p>Das Codebeispiel:<\/p>\n<p>&gt;&gt;&gt; if x &gt; 0:<br \/>\n&#8230;     print(&#8222;positiv&#8220;)<br \/>\n&#8230; else:<br \/>\n&#8230;     print(&#8222;nicht positiv&#8220;)<br \/>\n&#8230; elif x == 0:  # ung\u00fcltig!<br \/>\n&#8230;     print(&#8222;zero&#8220;)<br \/>\n&#8230;<\/p>\n<p>liefert in Version 3.13 die wenig aussagekr\u00e4ftige Fehlermeldung <\/p>\n<p>SyntaxError: invalid syntax<\/p>\n<p>in Version 3.14 hingegen:<\/p>\n<p>SyntaxError: &#8218;elif&#8216; block follows an &#8218;else&#8216; block<\/p>\n<p>Ein weiteres Beispiel: Fehlende oder falsch gesetzte Anf\u00fchrungszeichen in Strings f\u00fchren bei Python 3.14 jetzt zu einer gezielten Frage. Anstatt sich auf &#8222;invalid syntax&#8220; zu beschr\u00e4nken, folgt in der Fehlermeldung nun noch der Zusatz &#8222;Is this intended to be part of the string?&#8220;<\/p>\n<p><strong>String-Platzhalter und komfortablere REPL<\/strong><\/p>\n<p>Mit Python 3.14 halten auch neue Funktionen wie Template Strings (T-Strings), Lazy Annotations sowie REPL-Autovervollst\u00e4ndigung und -Syntax-Highlighting Einzug.<\/p>\n<ul class=\"rte__list rte__list--unordered\">\n<li><strong>Template Strings<\/strong>: Die neue String-Pr\u00e4fix-Option &#8218;t&#8216; erlaubt es, einen Platzhalter zu definieren, der sp\u00e4ter mit .substitute() oder .format_map() ersetzt werden kann. N\u00fctzlich sind die T-Strings zum Beispiel f\u00fcr Konfigurationsdateien und Templates. Au\u00dferdem erlauben sie eine sichere Verarbeitung von Nutzereingaben<\/li>\n<li><strong>Lazy Annotations<\/strong>: Damit wertet Python 3.14 Typ-Annotationen nicht mehr sofort beim Laden eines Moduls aus. Stattdessen werden sie als Strings gespeichert und erst bei Bedarf analysiert, was unter anderem Importproblemen entgegenwirken kann.<\/li>\n<li><strong>REPL-Autovervollst\u00e4ndigung und -Syntax-Highlighting<\/strong>: Diese beiden Funktionen sind bei Version 3.14 in der REPL-Konsole (Read-Evaluate-Print-Loop) standardm\u00e4\u00dfig aktiviert und sollen es erm\u00f6glichen, den Code leichter zu lesen und in der interaktiven Shell effizienter zu programmieren.<\/li>\n<\/ul>\n<p>Einen \u00dcberblick \u00fcber s\u00e4mtliche Neuerungen von Python 3.14 liefert die Seite zum <a href=\"https:\/\/www.python.org\/downloads\/release\/python-3140rc3\/\" rel=\"external noopener\" target=\"_blank\">Release Candidate<\/a>.<\/p>\n<p>(<a class=\"redakteurskuerzel__link\" href=\"https:\/\/www.heise.de\/news\/mailto:who@heise.de\" title=\"Wolf Hosbach\" target=\"_blank\" rel=\"noopener\">who<\/a>)<\/p>\n<p>\n      Dieser Link ist leider nicht mehr g\u00fcltig.\n    <\/p>\n<p>Links zu verschenkten Artikeln werden ung\u00fcltig,<br \/>\n      wenn diese \u00e4lter als 7\u00a0Tage sind oder zu oft aufgerufen wurden.\n    <\/p>\n<p><strong>Sie ben\u00f6tigen ein heise+ Paket, um diesen Artikel zu lesen. Jetzt eine Woche unverbindlich testen \u2013 ohne Verpflichtung!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"Nach dem dritten und finalen Release Candidate will die Python Software Foundation am 7. Oktober die stabile Version&hellip;\n","protected":false},"author":2,"featured_media":477677,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[135],"tags":[29,120981,30,196,39448,120982,190,189,194,191,1314,193,192],"class_list":{"0":"post-477676","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-wissenschaft-technik","8":"tag-deutschland","9":"tag-fehlermeldung","10":"tag-germany","11":"tag-it","12":"tag-python","13":"tag-repl","14":"tag-science","15":"tag-science-technology","16":"tag-technik","17":"tag-technology","18":"tag-updates","19":"tag-wissenschaft","20":"tag-wissenschaft-technik"},"share_on_mastodon":{"url":"https:\/\/pubeurope.com\/@de\/115327842812287497","error":""},"_links":{"self":[{"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/posts\/477676","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/comments?post=477676"}],"version-history":[{"count":0,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/posts\/477676\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/media\/477677"}],"wp:attachment":[{"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/media?parent=477676"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/categories?post=477676"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/tags?post=477676"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}