curses.wrapper() 不起作用 [python]

Sha*_*hif 3 python curses terminal

我正在尝试使用 curses.wrapper() 函数快速解决问题。正如文档所说,它接受 afunctionobject它的第一个参数将是屏幕,然后用于在屏幕上进一步工作。这是代码:

def function(screen):
    screen.addstr(0, 0, "print something here")
    screen.refresh()

curses.wrapper(function)
Run Code Online (Sandbox Code Playgroud)

但是,屏幕上什么也没有打印出来。控制只是进进出出。

aba*_*ert 5

您的代码(或至少可能……)运行良好;它完成得如此之快,你永远没有机会看到它。

你用addstr和在屏幕上放置一个字符串refresh。然后您立即从function返回,从 返回wrapper,将终端恢复到其前curses状态,因此结果消失。

如果您想看到某些事情发生,则需要进行某种延迟。例如:

def function(screen):
    screen.addstr(0, 0, "print something here")
    screen.refresh()
    screen.getkey()
Run Code Online (Sandbox Code Playgroud)

现在它会在左上角显示“在此处打印内容”,然后等待您按下某个键,在此期间您可以看到该字符串。