Die Entwickler haben Python 3.4 an zahlreichen Ecken optimiert und die Standardbibliothek um einige interessante Module erweitert, findet Python-Experte Mike Müller.
Einige Dinge verändert auch Python 3.4 nicht: Die neueste Version der 23 Jahre alten Programmiersprache behält die Syntax bei, weshalb Python-3.3-Programme weiterhin unverändert funktionieren. Einige alte Zöpfe schneiden die Entwickler dennoch ab: Python 3.4 unterstützt die Betriebssysteme Vax/VMS, OS/2 und Windows 2000 nicht mehr. Nutzer dieser Systeme müssen daher auf Python 3.3 ausweichen.
Ansonsten ist alles wie gehabt: Die so genannten Python Enhancement Proposals, kurz PEP [1], fassen die Details für viele der neuen Merkmale zusammen. Die Lektüre lohnt sich, weil die PEPs neben Hintergrundinformationen auch Beispiele für den praktischen Einsatz liefern.
Mit pip von Anfang an
Python bietet laut dem Python Package Index [2] derzeit über 42 000 Pakete an. Mit »pip« [3] lassen sich diese, inklusive ihrer Abhängigkeiten, sehr komfortabel installieren. Haben viele Nutzer bislang nach der Installation von Python zunächst »pip« heruntergeladen, ist das nun nicht mehr nötig: Die neueste Python-Version bringt »pip« standardmäßig mit. Spielt es dann noch mit »pyenv« zusammen, wird die Arbeit mit einer Python-Standardinstallation für den Entwickler wesentlich angenehmer. Das bei Python 3 schon länger zur Standardbibliothek gehörende »pyenv« erlaubt die Arbeit mit virtuellen, voneinander isolierten Python-Umgebungen.
Asynchrone Programmierung
Python-Schöpfer Guido van Rossum höchstpersönlich ist der Autor des »asyncio« -Moduls. Vor dessen Programmierung hat er ausgiebige Gespräche mit den Entwicklern ähnlicher Python-Bibliotheken wie Twisted, Tornado, Zero MQ und Pyftpdlib geführt. Wollen Entwickler die Event-Loop in andere Systeme einbauen, kann »asyncio« als Grundlage für diese Bibliotheken dienen. Weiterhin bietet »asyncio« auf höherem Abstraktionsniveau einen Scheduler auf Basis von »yield from« an. In dem recht umfangreichen PEP 3156 [4] beschreibt van Rossum das Modul detailliert. Das API ist dabei noch vorläufig, und Änderungen in Python 3.5 sind möglich.
Aufzählungen mit Enum
Nach mehreren Anläufen hat Python nun auch einen Aufzählungstyp im Gepäck. Die Klasse »Enum« aus dem gleichnamigen Modul weist eindeutigen, konstanten Werten symbolische Namen zu [5]. So ordnen Entwickler die Zahlen 0 bis 6 den Wochentagen zu oder beschreiben Schulnoten mit »1« für »sehr gut« und »2« für »gut« . Die Attribute einer Klasse, die von »Enum« erbt, übernehmen die Rolle der symbolischen Namen.
Zur Python-Philosophie gehört, dass es immer einen bevorzugten Weg geben soll, um ein Problem zu lösen [6]. Dank des neuen und im Vorfeld viel diskutierten Aufzählungstyps lassen sich bestimmte Aufgaben nun endlich auf einem standardisierten Weg lösen, selbst gestrickte Ansätze sind nicht mehr nötig.
Besser als Objekte
Es hat sich in der Praxis bewährt, für den Umgang mit C-Bibliotheken nicht nur einfache Schnittstellen, sondern zusätzliche, leistungsfähigere Module anzubieten, um die Vorteile von Python besser zu nutzen. Ein gutes Beispiel dafür liefert das viel genutzte »datetime« -Modul. Im Vergleich zum »time« -Modul, das einfach die Funktionalität des C-API nachbaut, erlauben die »datetime« -Objekte komfortable Berechnungen. Sie befreien den Programmierer zum Beispiel davon, komplizierte Regeln selbst zu implementieren, um Schaltjahre zu berechnen.






