से बाहर निकलने के लिए पाइथन शाप प्रोग्राम का कारण बनता है मैंने पायथन में एक शाप कार्यक्रम लिखा है। यह ठीक चलाता है। हालांकि, जब मैं 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()
इस happenning क्यों है, और कैसे मैं nodelay()
सुरक्षित रूप से उपयोग कर सकते हैं?
बग को पुन: पेश करने के लिए आवश्यक न्यूनतम कोड पर अपने कोड को पार करने का प्रयास करें। उदाहरण के लिए आप nodelay() सेट कर सकते हैं, फिर एक अनंत लूप में जाएं जो टूट जाता है और बाहर निकलता है जब आप एक कुंजी प्राप्त करते हैं। यदि न्यूनतम परीक्षण मामले में बग चला जाता है तो पता चलता है कि क्या बदला गया है। अगर वह असफल परीक्षण मामले को पोस्ट करने में मदद नहीं करता है। – Philip
@ फिलिप अच्छी सोच, ऐसा किया है, और परिणाम पोस्ट किया है। – ACarter