我找到了
input('some\x00 text')
将提示输入some
,而不是some text
。在
从源代码中,我发现这个函数使用C函数PyOS_Readline
,它忽略了提示符中空字节之后的所有内容。在
来自PyOS_StdioReadline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)
:
https://github.com/python/cpython/blob/3.6/Python/bltinmodule.c#L1989https://github.com/python/cpython/blob/3.6/Parser/myreadline.c#L251
这是一个错误还是有原因的?在
函数签名几乎需要一个以NUL结尾的C-string,
PyOS_StdioReadline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)
,因此在不更改API和破坏与GNU readline的互操作性的情况下,没有什么可以做的了。在相关问题 更多 >
编程相关推荐