Я написал программу curses на питоне. Работает нормально. Однако, когда я использую nodelay()
, программа закрывается сразу после запуска в терминале, при этом ничего не отображается (просто новое приглашение).
ИЗМЕНИТЬ
Этот код воспроизведет ошибку:
sc = curses.initscr() sc.nodelay(1) # But removing this line allows the program to run properly for angry in range(20): sc.addstr(angry, 1, "hi")
Вот мой полный код
import curses, time, sys, random def paint(x, y, i): #... def string(s, y): #... def feed(): #... sc = curses.initscr() curses.start_color() curses.curs_set(0) sc.nodelay(1) ######################################### # vars + colors inited for angry in range(20): try: dir = chr(sc.getch()) sc.clear() feed() #lots of ifs 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()
Почему это происходит и как я могу безопасно использовать nodelay()
?