저는 파이썬과 저주로 조금 놀고 있습니다.Python curses 딜레마
나는 모든 것이 잘 밖으로 작동하므로 통해, curses.endwin()
가 호출되는 모든 방법을 기다리면 내가
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()
를 실행합니다. 그러나 Ctrl-C로 짧게 자르면 curses.endwin()
이 호출되지 않으므로 터미널 세션이 엉망이됩니다.
이 상황을 처리하는 적절한 방법은 무엇입니까? 프로그램 종료 (예 : Ctrl-C, Ctrl-Z)에 관계없이 프로그램을 종료/중단하려고해도 터미널이 엉망이되지 않도록하려면 어떻게해야합니까?
는'finally'보다는'atexit' 정말 더 강력 :
여러분의 프로그램은 예를 들어, 래퍼에 대한 함수로 간다? – asmeurer
@asmeurer'finally' 버전의 문제는 모든 프로그램 코드가'try' 블록 내에 있음을 보장해야한다는 것입니다. 말하자면 다중 스레드 환경에서는 반드시 그런 것은 아닙니다. – Amber