我发现
input('some\x00 text')
将提示输入some
而不是some text
.
从消息来源,我发现这个函数使用 C 函数PyOS_Readline
,它会忽略 NULL 字节后提示的所有内容。
来自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
这是一个错误还是有原因?