Python

Neue Version der Programmiersprache erschienen

Python 3.8 ist da: Das sind die Features im Major Release
Keine Kommentare

Pünktlich wurde Python 3.8 von der Python Software Foundation veröffentlicht. Die neue Major-Version der Programmiersprache bringt einige neue Features mit, darunter Syntaxfunktionen wie den „Walrus Operator“ und Positional-Only Parameters. Andere Funktionen gelten als deprecated und sollen in Python 3.9 entfernt werden.

Python 3.8 ist planmäßig mit den angekündigten Features erschienen, zwei Wochen nach dem ersten und einzigen Release Candidate. Da keine unerwarteten Probleme auftraten, wurde auf einen zweiten Release Candidate verzichtet. CPython Core Developer Łukasz Langa verkündete die neue Version im Namen der Entwicklercommunity und des Release Teams.

Das erste Maintenance Release soll laut Langa im Dezember 2019 und nachfolgend in regelmäßigen zweimonatlichen Intervallen erscheinen. Der Lebenszyklus der neuen Major-Version der Programmiersprache wurde bereits im Release Schedule vorgezeichnet. Bugfixes sind 18 Monate lang vorgesehen, Security-Updates bis Oktober 2024.

Das Python-Team arbeitet bereits an der nächsten Major-Version Python 3.9 und hat die ersten Features vorgestellt. Die Entwicklung findet auf GitHub im CPython Master Branch auf GitHub statt.

Die Highlights im neuen Release

Python 3.8 galt schon mit der ersten Beta-Version im Juni 2019 als „feature complete“. Zu den Highlights zählt laut Python Software Foundation die neue Syntax := gemäß PEP 572. Sie weist Variablen als Teil eines größeren Ausdrucks Werte zu und wird aufgrund der optischen Ähnlichkeit auch als „Walrus Operator“ bezeichnet.

Der Walrus Operator kann in verschiedenen Fällen eingesetzt werden, wie in der Dokumentation gezeigt wird. Sein Gebrauch soll auf klare Fälle beschränkt bleiben, in denen er die Komplexität reduzieren und die Lesbarkeit verbessern kann. In diesem Beispiel vermeidet er, dass len() zweimal aufgerufen wird:

if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")

Als weiteres Highlight werden Positional-Only Parameters gemäß PEP 570 aufgeführt. Diese Syntaxfunktion / zeigt an, dass manche Funktionsparameter eine positionelle Spezifizierung benötigen und nicht als Keyword-Argumente verwendet werden können. Auch für dieses Feature wurde ein Codebeispiel gezeigt. Darin sind a und b ausschließlich positionell, c und d positionell oder Keywords, e und f ausschließlich Keywords:

def f(a, b, /, c, d, *, e, f):
    print(a, b, c, d, e, f)

Für die Positional-Only Parameters soll die gleiche Notation verwendet werden, die durch help() für in C implementierte Funktionen angezeigt wird.

Zu den weiteren Highlights zählt der Support für = in f-strings. Ein f-string wie f'{expr=}' soll beim Expandieren den Text des Ausdrucks, ein Gleichheitszeichen und die Repräsentation des evaluierten Ausdrucks anzeigen. Das wurde mit diesem Beispiel demonstriert:

>>> user = 'eric_idle'
>>> member_since = date(1975, 7, 31)
>>> f'{user=} {member_since=}'
"user='eric_idle' member_since=datetime.date(1975, 7, 31)"

Neben den neuen Features bringt Python 3.8 auch Deprecations mit, zum Beispiel soll bdist_wheely statt des als veraltet geltenden bdist_wininst verwendet werden. Die Methoden getchildren()und getiterator() im ElementTree-Modul erzeugen nun eine DeprecationWarning statt einer PendingDeprecationWarning und sollen in Python 3.9 entfernt werden.

Portierung zu Python 3.8

Bei der Python Software Foundation steht Python 3.8 zum Download bereit. Das Python-Team weist darauf hin, dass es unter Umständen nötig sein kann, bestehenden Code für die Portierung zu Python 3.8 anzupassen. Die betreffenden Änderungen und Bugfixes können in der Dokumentation eingesehen werden.

Alle Neuerungen in Python 3.8 sind im Changelog zu finden, die Highlights sind in der Dokumentation aufgeführt.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -