मैं पाइथन और शाप के साथ थोड़ा सा खेल रहा हूं।पायथन शाप दुविधा
जब मैं
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()
चलाने अगर मैं सभी तरह के माध्यम से, curses.endwin()
कहा जाता हो जाता है तो सब कुछ ठीक से काम करता है प्रतीक्षा करें। हालांकि, अगर मैं इसे Ctrl-C के साथ छोटा करता हूं, curses.endwin()
कभी भी कॉल नहीं किया जाता है, इसलिए यह मेरे टर्मिनल सत्र को खराब करता है।
इस स्थिति को संभालने का सही तरीका क्या है? मैं यह कैसे सुनिश्चित कर सकता हूं कि कोई फर्क नहीं पड़ता कि मैं प्रोग्राम को समाप्त/बाधित करने का प्रयास कैसे करता हूं (उदा। Ctrl-C, Ctrl-Z), यह टर्मिनल को गड़बड़ नहीं करता है?
'atexit' वास्तव में अधिक' finally' से मजबूत है? – asmeurer
@asmeurer यह 'आखिरकार' संस्करण की बात है, आपको यह गारंटी देने की आवश्यकता है कि आपका सभी प्रोग्राम कोड 'try' block के भीतर है। कहें, एक बहुप्रचारित वातावरण, यह आवश्यक नहीं है। – Amber