我用python写了一个curses程序,它可以正常运行。但是,当我使用nodelay()时,在终端启动后程序立即退出,什么也没有显示(只会出现新的提示符)。
编辑:
以下代码可以重现该错误:
编辑:
以下代码可以重现该错误:
sc = curses.initscr()这是我的完整代码:
sc.nodelay(1) # 删除此行允许程序正确运行
for angry in range(20): sc.addstr(angry, 1, "hi")
import curses, time, sys, random为什么会发生这种情况,如何安全地使用nodelay()?
def paint(x, y, i): #... def string(s, y): #...
def feed(): #...
sc = curses.initscr() curses.start_color() curses.curs_set(0) sc.nodelay(1) #########################################
# 初始化变量 + 颜色
for angry in range(20): try: dir = chr(sc.getch())
sc.clear()
feed()
#很多个if语句
body.append([x, y]) body.pop(0)
for point in body: paint(*point, i=2)
sc.move(height-1, 1) sc.refresh() time.sleep(wait)
except Exception as e: print sys.exc_info()[0], e sc.getch() curses.beep()
curses.endwin()