input('some\x00 text')
がsome
代わりのsome text
のために要求されますことを発見しました。
ソースから、私はこの関数がNULLバイト後のプロンプトのすべてを無視するC関数PyOS_Readline
を使用していることを理解しました。 PyOS_StdioReadline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)
から
:
fprintf(stderr, "%s", prompt);
https://github.com/python/cpython/blob/3.6/Python/bltinmodule.c#L1989 https://github.com/python/cpython/blob/3.6/Parser/myreadline.c#L251
が、これはバグですか、その理由があるのでしょうか?
問題:http://bugs.python.org/issue30431
ほとんどの場合、バグです。 – ivand58
これは 'readline'を呼び出しており、' readline'自体はC NULで終了する文字列データ型を使用しているので、 'readline'を完全に再コーディングする以外にPython *ができることはほとんどありません。 – torek
ありがとう@torek。私は投稿 –