当我使用
ch = wnd.getch()
在curses
Python 下,我可以捕获wnd.getch
返回 10 的回车键。但是当我替换getch
为get_wch
. 有什么问题get_wch
吗?
当我使用
ch = wnd.getch()
在curses
Python 下,我可以捕获wnd.getch
返回 10 的回车键。但是当我替换getch
为get_wch
. 有什么问题get_wch
吗?
功能getch
和get_wch
接口不同:
getch
返回一个字符get_wch
返回一个状态码,并通过作为参数传递的指针设置一个宽字符。它们使用不同的接口,因为特殊键(例如KEY_HOME
)可以getch
作为“普通”(8 位)字符范围之外的“额外”字符处理。你不能用宽字符来做到这一点(不是那么容易,因为宽字符范围的结尾不太明确),所以get_wch
使用状态码来判断它通过指针设置的值是宽字符还是特殊键。
虽然手册页很清楚,但 python 开发人员在将特性添加到 curses 包装器时并没有注意到这种区别。Python 文档中的描述对应于getch
而不是get_wch
:
问题 #15785:curses.get_wch() 错误地返回键盘代码
错误报告表明修复已应用于 python 3.4。
window.get_wch([y, x])
获得一个广泛的字符。为大多数键返回一个字符,或者为功能键、键盘键和其他特殊键返回一个整数。
3.3 版中的新功能。
进一步阅读: