Python 3 kompatibel entwickeln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Freitag 22. Januar 2010, 13:56

Hi, ich starte jetzt endlich mein Projekt Webshop. Der soll erstmal auf Python 2.6 laufen. Da aber Python 2.7 die letzte Version dieser "Reihe" sein soll, möchte ich das Programm gleich so gestalten, dass es mit schlimmstenfalls minimalen Änderungen auch ab Python 3 funktioniert.

Worauf kommt es da an? Was sollte man schon berücksichtigen? Was sollte man vermeiden?
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Freitag 22. Januar 2010, 14:03

burli hat geschrieben:Hi, ich starte jetzt endlich mein Projekt Webshop. Der soll erstmal auf Python 2.6 laufen. Da aber Python 2.7 die letzte Version dieser "Reihe" sein soll, möchte ich das Programm gleich so gestalten, dass es mit schlimmstenfalls minimalen Änderungen auch ab Python 3 funktioniert.

Worauf kommt es da an? Was sollte man schon berücksichtigen? Was sollte man vermeiden?
Das lässt sich nicht kurz zusammenfassen ohne auf jeden Fall irgendetwas wichtiges zu vergessen. Konzeptionell sollte es egal sein, was die Implementation angeht, nicht. Ich persönlich würde so vorgehen, dass ich mir Gedanken darüber machen würde, welche Module ich benötige und dann die Doku beider Versionen vergleiche, um zu sehen, was sich da geändert hat.

Ich meine aber auch, die Empfehlung gelesen zu haben, so etwas eher gar nicht erst zu tun, weil es ab einer gewissen Komplexität ziemlich unübersichtlich wird und den Code auch nicht schöner macht, wenn man z.B. je nach Version Fallunterscheidungen einbauen muss.

Edit: Das letzte trifft natürlich nur zu, wenn der Code unter 2.x und 3.x laufen soll. Aber ich glaube, darum ging es dir gar nicht.
Zuletzt geändert von numerix am Freitag 22. Januar 2010, 14:05, insgesamt 1-mal geändert.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 22. Januar 2010, 14:03

Du solltest am besten mit ``-3`` die Warnungen einschalten und dazu dann auch ``from __future__ import print_function, unicode_literals`` verwenden.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Freitag 22. Januar 2010, 18:47

numerix hat geschrieben:Edit: Das letzte trifft natürlich nur zu, wenn der Code unter 2.x und 3.x laufen soll. Aber ich glaube, darum ging es dir gar nicht.
Genau, darum geht es nicht explizit. Ich möchte beim Wechsel au Python 3 nur nicht das halbe Programm neu schreiben müssen.

@Leonidas: danke für den Tipp
Antworten