[Python-de] Was sein sollte
Martin v. Loewis
martin at v.loewis.de
Don Jan 1 13:41:28 CET 2004
kgm wrote:
> Warum also nicht was anbieten, um die Wünsche zu erfüllen?
>
> Was spricht dagegen, in Py einen Befehl einzuführen, der es dem
> Entwickler überlässt, sein gewünschtes Default-Encoding für sein Script
> für Bytestrings zu setzen?
Da gibt es mehrere Probleme:
1. Das encoding gilt nicht für ein Skript, sondern für die
ganze Anwendung - man weiss hinterher ja nicht mehr, welcher
String jetzt in welchem Modul generiert wurde.
2. Bytestrings und Unicode-Strings, die "gleich" sein sollen
(also sich durch das default encoding ineinander umwandeln
lassen sollen), müssen den gleichen Hash-Wert besitzen,
sonst kann man sie nicht zusammen in einen Dictionary
verwenden. Das ist nicht implementierbar, wenn man beliebige
Encodings zulässt.
3. Woher weißt Du, als Programmautor, eigentlich, welche Encodings
Deine Bytestrings haben? Das hängt doch auch davon ab, welche
Encodings der Nutzer verwendet.
Tatsächlich kann der Nutzer gegenwärtig schon ein anderes als
'us-ascii' als default encoding festlegen, indem er site.py
ändert. Wenn Du sicher bist, dass Dein Skript ein bestimmtes
Default encoding verwendet, mußt Du einfach sitecustomize.py
anpassen.
> Vielleicht könnte man mit obigen Angabe in der Source auch gleich das
> Default-Encoding für Bytestrings vorbelegen?
Was ist, wenn mehrere Module einer Anwendung verschiedene source
encodings benutzen?
Ciao,
Martin