43.3 Geplante Sprachelemente
Die Sprache Python befindet sich in ständiger Entwicklung, und jede neue Version bringt neue Sprachelemente mit sich, die alten Python-Code unter Umständen inkompatibel mit der neusten Version des Interpreters machen. Zwar geben sich die Entwickler Mühe, größtmögliche Kompatibilität zu wahren, doch ist beispielsweise durch das bloße Hinzufügen eines Schlüsselwortes schon derjenige Code inkompatibel geworden, der das neue Schlüsselwort als normalen Bezeichner verwendet.
Der Interpreter besitzt einen Modus, mit dem sich einige ausgewählte Sprachelemente der kommenden Python-Version bereits mit der aktuellen Version testen lassen. Dies soll den Wechsel von einer Version zur nächsten vereinfachen, da bereits gegen einige neue Features der nächsten Version getestet werden kann, bevor diese herausgegeben wird.
Zum Einbinden eines geplanten Features wird eine import-Anweisung verwendet:
from __future__ import sprachelement
Die Sprachelemente können verwendet werden, als wären sie in einem Modul namens __future__ gekapselt. Beachten Sie aber, dass Sie mit dem Modul __future__ nicht ganz so frei umgehen können, wie Sie das von anderen Modulen her gewohnt sind. Sie dürfen es beispielsweise nur am Anfang einer Programmdatei einbinden. Vor einer solchen import-Anweisung dürfen nur Kommentare, leere Zeilen oder andere Future Imports stehen.
Ein Beispiel für einen Future Import ist print_function, das ab Python 2.6 existiert und dort die print-Funktion einbindet. Gleichzeitig wird das Schlüsselwort print aus der Sprache entfernt. Auf diese Weise kann das Verhalten von Python 3 nachgebildet werden:
>>> from __future__ import print_function
>>> print "Test"
File "<stdin>", line 1
print "Test"
^
SyntaxError: invalid syntax
>>> print("Test")
Test