Sto giocando un po 'con Python e bestemmie.Python curses dilemma
Quando eseguo
import time
import curses
def main():
curses.initscr()
curses.cbreak()
for i in range(3):
time.sleep(1)
curses.flash()
pass
print("Hello World")
curses.endwin()
if __name__ == '__main__':
main()
se aspetto tutto il percorso attraverso, curses.endwin()
viene chiamato in modo tutto funziona bene. Tuttavia, se l'ho tagliato corto con Ctrl-C, curses.endwin()
non viene mai chiamato in modo da rovinare la mia sessione terminale.
Qual è il modo corretto di gestire questa situazione? Come posso assicurarmi che non importa come cerco di terminare/interrompere il programma (ad esempio Ctrl-C, Ctrl-Z), non rovina il terminale?
è 'atexit' davvero più robusto di' finally'? – asmeurer
@asmeurer È più una questione di "finalmente" la versione richiede di garantire che tutto il codice del programma sia all'interno del blocco try. In, ad esempio, un ambiente multithread, non è necessariamente il caso. – Amber