[Python-de] raw_input

Martin v. Loewis martin at v.loewis.de
Thu Oct 3 15:55:26 EDT 2002


Gregor Lingl <glingl at aon.at> writes:

> Gesucht ist eine leicht verständliche und leicht auszuführende Lösung
> des Problems.

Leider hat das Problem keine leicht verständliche und leicht
auszuführende Lösung. Es wäre am besten, es existierte gar nicht; man
kann es mit

Index: PyShell.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/idle/PyShell.py,v
retrieving revision 1.41
diff -u -r1.41 PyShell.py
--- PyShell.py	12 Sep 2002 20:34:41 -0000	1.41
+++ PyShell.py	3 Oct 2002 12:46:33 -0000
@@ -488,6 +488,12 @@
         if self.endoffile:
             self.endoffile = 0
             return ""
+        if isinstance(line, unicode):
+            import IOBinding
+            try:
+                line = line.encode(IOBinding.encoding)
+            except UnicodeError:
+                pass
         return line
 
     def isatty(self):

etwas entschärfen (das setzt CVS IDLE voraus) - dein Beispiel führt
dann nicht mehr zu einem Fehler.

> def raw_input(prompt):
>     from sys import stdin, stdout
>     stdout.wirte(prompt)
>     return stdin.readline()
> 
> zu überschreiben.
> 
> Handelt man sich dadurch irgendwelche wesentlichen Nachteile ein?

Nun ja, in diesem Fall ist das Ergebnis von raw_input u.U. ein
Unicode-String - ob das akzeptabel ist, hängt davon ab, was man damit
machen will.

> 1) Ersetzen der IDLE-Module, die den Fehler verursachen, durch gepatchte.
> Doch gibt es solche? Welche sind das? Wo findet man sie?

Das Problem ist echt kompliziert. Was immer der Lösungsvorschlag ist -
ich finde ein Beispiel, bei dem er scheitert. CVS-IDLE mit meinem
Patch ist vielleicht die Lösung mit am wenigsten unerwarteten
Ergebnissen.

> Was ratet ihr? Alles ist besser, als kommentarlos zu übergehen, dass
> raw_input in der IDLE normale deutsche Sätze nicht verträgt.

Ich denke, dass wäre auch eine gute Lösung: In der nächsten Version
verträgt IDLE normale deutsche Sätze.

Vielleicht sollte man einfach erklären, was ein Bug ist - das gehört
ja auch zum Alltag mit Computern.

Ciao,
Martin




More information about the Python-de mailing list