Seite 1 von 1

Versionsabhängiger __future__-Import

Verfasst: Freitag 7. November 2008, 15:29
von cofi
Da das with-Statement eine praktische Sache ist, will ich das natürlich auch nutzen.
__future__-Imports müssen am Beginn des Moduls sein -> Versionsprüfung geht nicht.
Ein try - except - Konstrukt geht deshalb auch nicht.
Wie sollte man das nun Versionsübergreifend benutzen?

Code: Alles auswählen

from __future__ import with_statement
Und hoffen, dass es einem nicht um die Ohren fliegt? Oder bleiben neue Features zusätzlich im __future__-Modul?

Bitte um Aufklärung :)

Verfasst: Freitag 7. November 2008, 15:33
von Trundle
In der Dokumentation von [mod]__future__[/mod] steht:
No feature description will ever be deleted from __future__.
Das kann dir dann also höchstens bei älteren Versionen "um die Ohren fliegen", nicht aber bei neueren.

Verfasst: Samstag 8. November 2008, 13:06
von cofi
Danke. In der Doku hätte ich natürlich selbst nachschauen können :/

Ist natürlich gut zu wissen, allerdings würde ich am liebsten noch eine - für nicht-Python-Programmierer - verständliche Fehlermeldung ausgeben.

Code: Alles auswählen

try:
    from __future__ import with_statement
except:
    print "Use a newer Python-Version!" 
    raise SystemExit
Was aber natürlich auch nicht geht ... Jemand eine Idee? Oder sollte man von __future__ in Releases Abstand halten?

Verfasst: Samstag 8. November 2008, 13:13
von Leonidas
cofi hat geschrieben:Oder sollte man von __future__ in Releases Abstand halten?
Nein, es sind ja keine Beta-Versionen sondern ausgereifte Features die aber ggf. kleinere Problem mit der Kompatibilität zu älterem Code haben können.