在python curses文档中,它声明如下:
当你调用一个方法来显示或擦除文本时,效果不会立即显示在显示器上。相反,您必须调用窗口对象的 refresh() 方法来更新屏幕。
因此,我希望下面的代码不会显示“hello world”:
import curses
from curses import wrapper
def main(scr):
scr.clear()
scr.addstr("hello world!")
scr.getkey()
wrapper(main)
然而,在我的终端中运行它会产生“hello world!”。这是为什么?
即使没有显式调用 refresh() 方法,文本仍然显示在屏幕上。这是因为 addstr() 方法在内部隐式调用了 refresh() 方法。因此文本被添加到屏幕并显示,而不需要显式调用 refresh()。但是,最好在对屏幕进行更改后调用 refresh() 以确保它们立即更新。
根据文档,
getch()
(和其他输入功能)在内部刷新屏幕。
getch() 刷新屏幕,然后等待用户按下一个键