2014-02-18 3 views
0

Так что я интересно это: Есть ли способ, чтобы быть в состоянии выйти из каких-то питона код без всего этого появляется:Есть чистый способ закрытия системы в питоне

Traceback (most recent call last): 
    File "H:\My Documents\Year 13\COMP4\trial.3.1.4.1.py", line 590, in <module> 
    myApp.monitorInput() 
    File "H:\My Documents\Year 13\COMP4\trial.3.1.4.1.py", line 578, in monitorInput 
    self.close() 
    File "H:\My Documents\Year 13\COMP4\trial.3.1.4.1.py", line 293, in close 
    sys.exit() 
SystemExit 

Это просто выглядит если это ошибка, но на самом деле все, что я делаю, это выход из некоторого кода. Я не возражаю против этого, но он просто не выглядит аккуратным и хорошим, если он существует как сообщение об эго.

Вот область в моем коде, где я выйти из программы, что я бегу:

def close(self): 
    print ("pygame quit") 
    pygame.quit() 
    sys.exit() 

Основная область, где все это происходит:

def monitorInput(self): 

    clock = pygame.time.Clock() 

    RUNNING = True 
    while RUNNING: 

     for event in pygame.event.get(): 

      if event.type == pygame.QUIT: 
       RUNNING = False 
       break 

      if event.type == pygame.KEYDOWN: 
       if event.key == pygame.K_ESCAPE: 
        self.show_keyboard = not self.show_keyboard 
        self.show_panes = not self.show_panes 

      if event.type == pygame.MOUSEBUTTONUP: 

       textSelected = self.mouseDown() 
       print(textSelected) 

       if textSelected == "Keyboard": 
        self.createKeyboard() 

       elif textSelected == "Boxes": 
        self.createWords() 

       elif textSelected == "Set Phrases": 
        self.createPhrases() 

       elif textSelected == "OK": 
        self.okButton() 

       elif textSelected != "Nothing selected": 
        if self.show_keyboard: 
         self.terminal.addText(textSelected) 
        else: 
         self.terminal.addWord(textSelected) 

       # --- draws terminal to reflect the additions --- 
       if self.show_terminal: 
        self.terminal.draw() 
        pygame.display.update() 
       #end if 

      #end if 

     #end for 


     pygame.display.update() 

     # --- FPS --- 

     clock.tick(60) 

    #end while 
    self.close() 
+0

btw как вы используете свой скрипт? – WeaselFox

+0

Нечетные. Исключения 'SystemExit' обычно не печатаются; они просто должны вызывать нормальный выход программы. – user2357112

+0

@WeaselFox Что значит. Я запускаю его с помощью PyGame (думаю, это может быть ответ на ваш вопрос) – PythonNovice

ответ

6

как насчет просто выхода:

exit(1) 
+0

Да, это хорошо работает. Большое спасибо. – PythonNovice

+0

Если бы это был ответ, отметьте его как ответ, как только stackoverflow позволит вам. Направлять будущих читателей. –

+0

@ user2128576 Думаю, что у меня есть? Он говорит, что у меня на компьютере. – PythonNovice

Смежные вопросы