[python] raw_input() jeste jednou (bylo raw_input() bug ... vyvoj
Pythonu, jimavy pribeh)
Petr Prikryl
PrikrylP na skil.cz
Středa Srpen 3 12:23:12 CEST 2005
Další poznámka k řešení problému s raw_input()...
Petr Prikryl
> pavel.kosina
> > [...] Mě zase rozčiluje, že nejde
> > raw_input s unicodem - už tu
> > jednou bylo, od pepra, že hlásil bug:
[...]
> > ale ted jsem ho tam hledal a vůbec tam není.
[...]
> Je to tam, ale je mezi uzavřenými [...] Částečné řešení
> lze nalézt u poslední poznámky by birkenfeld, tj. explicitně
>
> raw_input(s.encode(sys.stdout.encoding))
>
> Dá se to vyřešit centralizovaně například definicí vlastní funkce:
>
> def my_input(s):
> import sys
> return raw_input(s.encode(sys.stdout.encoding))
>
> Ale moc se mi to nelíbí, protože takhle by měla fungovat
> raw_input() už "od narození". [...]
Až teď jsem si všiml názoru GvR, který se týká
raw_input() -- viz http://www.python.org/peps/pep-3000.html
a http://www.python.org/doc/essays/ppt/regrets/PythonRegrets.pdf
Stučně řečeno, GvR lituje, že raw_input() vůbec vzniklo.
Doporučuje používat sys.stdin.readline(). Něco na tom je.
Nedobře fungující implementaci raw_input() můžu jednoduše
nahradit vlastní malou funkcí:
========================================
import sys
def my_input(prompt):
sys.stdout.write(prompt)
return sys.stdin.readline()
r = my_input('prompt: ')
print r
========================================
pepr
Další informace o konferenci Python