Hinweis: Obwohl JavaScript für diese Website nicht unbedingt erforderlich ist, werden Ihre Interaktionsmöglichkeiten mit den Inhalten eingeschränkt sein. Bitte aktivieren Sie JavaScript für das volle Erlebnis.

Highlights: Python 2.5

Highlights: Python 2.5

Hier sind einige der (subjektiven) Highlights von Python 2.5. Mehr Details zu fast allen neuen Funktionen finden Sie im Dokument Was ist neu in Python 2.5

Zuverlässiger

Python verwendet nun das Buildbot-Tool für kontinuierliches Testen auf einer Vielzahl von Plattformen. Dies ermöglicht es uns, Probleme während der Entwicklung schneller zu erkennen und führte zu einer wesentlich robusteren Veröffentlichung.

Andrew Kuchling stellte fest, dass seit Python 2.4 über 350 Patches und über 450 Fehler behoben wurden.

Schneller

Eine Reihe von Optimierungen ergaben sich aus dem NeedForSpeed-Sprint in Island. Es gab erhebliche Geschwindigkeitssteigerungen bei der Ausnahmebehandlung und bei Zeichenkettenoperationen sowie eine Reihe weiterer Änderungen zur Leistungsverbesserung.

Neue Sprachmerkmale

Intern wandelt der Python-Compiler den Quellcode nun in einen abstrakten Syntaxbaum (AST) um, bevor er den Bytecode erzeugt.

Der 'with'-Operator ersetzt ein gängiges try/finally-Idiom, was zu deutlich saubererem und sicherem Code führt.

Generatoren erhielten die Methoden send, throw und close. An send übergebene Werte werden bei der Wiederaufnahme des Generators vom yield-Statement zurückgegeben. throw nimmt eine Ausnahme und bewirkt, dass das yield-Statement die übergebene Ausnahme im Generator auslöst. close wird verwendet, um einen Generator zu beenden. Dies verwandelt Generatoren in eine Form von Coroutinen und macht sie noch leistungsfähiger.

Bedingte Ausdrücke der Form (TrueValue if Bedingung else FalseValue) wurden hinzugefügt.

import kann sowohl relative als auch absolute Imports verwenden, wenn es sich innerhalb von Paketen befindet.

Try/except/finally wurden so geändert, dass es nun möglich ist, sowohl except-Blöcke als auch einen finally-Block für denselben try-Block zu haben.

Ausnahmen sind zu neuen Klassen geworden, und die Ausnahmeshierarchie wurde ein wenig neu geordnet.

Intern wurde Python so geändert, dass der Py_ssize_t-Typ verwendet wird – dies bedeutet, dass viele Strukturen, die auf 2^32 Objekte beschränkt waren, nun stattdessen bis zu 2^64 aufnehmen können.

Neue oder aktualisierte Built-ins

Die Methoden partition und rpartition wurden zu str und unicode hinzugefügt. Dies vereinfacht den Prozess der Suche und Aufteilung von Zeichenketten erheblich.

Neue Built-ins any und all werten aus, ob ein Iterator überhaupt oder alle True-Werte enthält.

min und max erhielten einen key-Schlüsselwortparameter, analog zu sort.

Neue oder aktualisierte Module und Pakete

Im Sinne des Themas, bewährte und zuverlässige Pakete zur Standardbibliothek hinzuzufügen, haben wir in 2.5 ctypes, ElementTree, hashlib, sqlite3 und wsgiref zur Standardbibliothek hinzugefügt, die mit Python ausgeliefert wird.

Googles Summer of Code resultierte in einem neuen cProfile-Profiling-Modul. Dies ist eine wesentlich effizientere Version des altehrwürdigen profile.py-Moduls, das seit vielen, vielen Jahren mit Python ausgeliefert wird. GSoC gab uns auch ein neu geschriebenes Mailbox-Modul, das Mailboxen in verschiedenen Formaten lesen und schreiben kann.

Das struct-Modul wurde aktualisiert, um ein neues Struct-Objekt zu unterstützen. Diese sind vergleichbar mit der kompilierten Form von regulären Ausdrücken im re-Modul.

Einige weitere kleinere Module, die zur Standardbibliothek hinzugefügt wurden, sind uuid, msilib und spwd.