Python 3.14

Python 3.14: Die 5 wichtigsten Funktionen

vg

Die Vorabversion von Python 3.14 ist bereits da. Dies ist die dritte Alpha-Version von sieben, die von der Python-Community geplant sind, und ich kann nicht ruhig bleiben.

Python ist schon seit geraumer Zeit auf dem Markt und als Python-Entwickler freue ich mich sehr, Ihnen mitteilen zu können, dass Python mit jeder neuen Version nach und nach wichtige Updates vornimmt.

Erst vor ein paar Monaten sahen wir mit der Veröffentlichung von Python 3.13 ein großes Update zu optionalen GIL-Änderungen und ich war noch nicht darüber hinweg. Mehr zu den GIL-Updates erfährst du hier – The GIL is No More.

Die neueste Version von Python – 3.14 – hat einige wichtige Verbesserungen, die ich hier auflisten werde. Ich habe die Top 5 der neuen Updates, die mit dieser neuen Version von Python veröffentlicht wurden, unten gebündelt.

Geplant ist die Python Version 3.14 für den 5. Oktober 2024.

1. Laden Sie die Python-Umgebung neu

os.environ und enthält die zwischengespeicherten Umgebungsvariablen, die am Anfang eines Python-Programms definiert sind.os.environb

Die Herausforderung kam, als einige dieser Umgebungsvariablen außerhalb des Python-Skripts aktualisiert wurden.

Wir alle wissen, dass Python-Entwickler Herausforderungen lieben. Die Python-Community hat daran gearbeitet, und sie hat gute Nachrichten.

Eines der neuesten Updates im Modul in Python 3.14 ist die Möglichkeit, mit den neuesten Werten zu aktualisieren, indem eine neu hinzugefügte Python-integrierte Funktion verwendet wird: osos.environos.reload_environ()

So funktioniert es —

Python 3.14.0a3 (tags/v3.14.0a3:401bfc6, Dec 17 2024, 10:58:10) [MSC v.1942 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> import os
>>> os.environ = os.reload_environ()
>>>

Jetzt kann man als Entwickler os.environ mit der Methode mit den neuesten Werten aktualisieren.reload_environ()

Hinweis: Die Funktion ist nicht threadsicher. Das Aufrufen, während die Umgebung in einem anderen Thread geändert wird, ist ein nicht definiertes Verhalten.reload_environ()

2. Schluss mit eifrigen Auswertungen von Anmerkungen

Beginnen wir mit einer grundlegenden Frage, bevor wir zu diesem Feature übergehen:

Was sind Anmerkungen?

Anmerkungen in Python sind Teil des Codes, der Metadaten bereitstellt und Typhinweise aktiviert. Diese Anmerkungen enthalten Informationen zu Variablen, Funktionsparametern und Rückgabewerten.

Anmerkungen helfen Programmierern, Metadaten darüber hinzuzufügen, welche Art von Wert von welcher Variablen erwartet werden könnte.

Zum Beispiel:

>>> def addition(num1: int, num2: float) -> float:
... return num1 + num2

Die obigen Schritte definieren die Parameter und den Rückgabetyp mithilfe von Anmerkungen.addition()

Früher hat Python Annotationen eifrig ausgewertet. Nun, das hat sich jetzt geändert.

Ab Python 3.14 – Die Anmerkungen werden in speziellen Anmerkungsfunktionen gespeichert und nur bei Bedarf ausgewertet.

Wie hilft das?

Diese Änderung soll Anmerkungen in Python leistungsfähiger und in den meisten Fällen benutzerfreundlicher machen.

Das neue Modul bietet Werkzeuge zum Überprüfen von verzögerten Anmerkungen.annotationlib

Anmerkungen können in den folgenden drei Formaten ausgewertet werden:

  1. VALUE – Wertet Anmerkungen zu Laufzeitwerten aus, ähnlich dem Verhalten in früheren Python-Versionen),
  2. FORWARDREF — Dieses Format ersetzt undefinierte Namen durch spezielle Markierungen
  3. STRING – Dies gibt Anmerkungen als Zeichenfolgen zurück.

Dieses Beispiel zeigt, wie sich diese Formate verhalten –

>>> from annotationlib import get_annotations, Format
>>> def func(arg: Undefined):
... pass
...
>>> get_annotations(func, format=Format.VALUE)
Traceback (most recent call last):
File "<python-input-10>", line 1, in <module>
get_annotations(func, format=Format.VALUE)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\varun\AppData\Local\Programs\Python\Python314\Lib\annotationlib.py", line 707, in get_annotations
ann = _get_dunder_annotations(obj)
File "C:\Users\varun\AppData\Local\Programs\Python\Python314\Lib\annotationlib.py", line 847, in _get_dunder_annotations
ann = getattr(obj, "__annotations__", None)
File "<python-input-9>", line 1, in __annotate__
def func(arg: Undefined):
^^^^^^^^^
NameError: name 'Undefined' is not defined


>>> get_annotations(func, format=Format.FORWARDREF)
{'arg': ForwardRef('Undefined')}


>>> get_annotations(func, format=Format.STRING)
{'arg': 'Undefined'}

3. Überprüfung der Array-Länge in der Methode map()

In Python verhält sich die Funktion wie eine Schleife. Es nimmt eine Funktion und ein Iterierbares (wie eine Liste oder ein Tupel) als Eingabe.map()

Für jedes Element im Iterable wird die angegebene Funktion darauf angewendet. Dadurch wird ein neues Iterable erstellt, das die Ergebnisse der einzelnen Funktionsaufrufe enthält.map()

Im Wesentlichen ist dies eine bequeme Möglichkeit, denselben Vorgang auf jedes Element in einer Auflistung anzuwenden.map()

Früher hätten Sie Ihre map()-Funktionalitäten so geschrieben —

>>> def mul(a, b):
... return a * b
...
>>> l1 = [1, 2, 3, 4]
>>> l2 = [5, 6, 7]
>>> result=list(map(mul,l1,l2))

[5, 12, 21]

Hier enthält 3 Artikel im Vergleich zu 4 Artikeln in Dies kann besser mit einem Flag gehandhabt werden, wenn die Funktion in Python 3.14 verwendet wird —l2l1strict=Truemap()

>>> def mul(a, b):
... return a * b
...
>>> l1 = [1, 2, 3, 4]
>>> l2 = [5, 6, 7]
>>> result=list(map(mul,l1,l2, strict=True))

Traceback (most recent call last):
File "<python-input-33>", line 1, in <module>
result=list(map(mul,l1,l2, strict=True))
ValueError: map() argument 2 is shorter than argument 1

4. Entpacken von Werten — Verbesserte Fehlermeldung

Wenn Sie als Python-Entwickler programmieren und auf einen Fehler stoßen, hilft Ihnen die Fehlermeldung dabei, herauszufinden, was im Code falsch ist.

Verbesserte Fehlermeldungen machen Ihnen das Leben viel einfacher im Vergleich zu früheren Python-Versionen.

Betrachten Sie als Beispiel den folgenden Code, bei dem beim Entpacken ein Fehler auftritt:


>>> item1, item2, item3 = 1, 2, 3, 4

Traceback (most recent call last):
File "<python-input-0>", line 1, in <module>
item1, item2, item3 = 1, 2, 3, 4
^^^^^^^^^^^^^^^^^^^
ValueError: too many values to unpack (expected 3, got 4)

Jetzt erhalten Sie eine aussagekräftigere Fehlermeldung: ValueError: too many values to unpack (expected 3, got 4)

5. Zwei neue Operator-Methoden

Python 3.14 bringt zwei neue Operator-Methoden:

  1. operator.is_none()
  2. operator.is_not_none()

operator.is_none(obj) ist äquivalent zu und ist äquivalent zu .obj is Noneoperator.is_not_none(obj)obj is not None

Fazit

Diese Verbesserungen machen Python noch leistungsfähiger und benutzerfreundlicher. Die Fortschritte in der Fehlerbehandlung, die Verzögerung der Anmerkungsauswertung und die flexibleren Funktionen in map() werden das Arbeiten mit Python erleichtern und effizienter gestalten.

Weiteres interessantes Thema: Software-Architekturdiagramme: So erstellen Sie gute Diagramme und Erste Schritte auf dem Weg zum Softwarearchitekten

com

Newsletter Anmeldung

Bleiben Sie informiert! Wir informieren Sie über alle neuen Beiträge (max. 1 Mail pro Woche – versprochen)