退出python程序中的函数

时间:2012-07-12 10:40:15

标签: python

我有一个在Python中运行的程序,没有控制台存在(也就是说,我使用py2exe编译它)。我希望人们能够从主菜单中退出,或者通过游戏中的特定按键(例如,Shift + Q)退出。我现在在Windows中运行它,虽然我正在编译Linux / Mac版本。如果没有“while”循环运行,按下X按钮就可以正常运行,并且正确关闭它,否则它似乎“存储”关闭命令等​​待当前循环关闭。

至于菜单选项,我仔细查看了文档和Stackoverflow,并尝试了quit(),exit(),sys.exit()以及我能找到的每个组合,但每次都得到:

Traceback (most recent call last):
  File "alphatime.pyw", line 61177, in <module>
  File "alphatime.pyw", line 53970, in place_menu
NameError: global name 'sys' is not defined

如果我尝试sys.exit,然后:

Traceback (most recent call last):
  File "alphatime.pyw", line 61177, in <module>
  File "alphatime.pyw", line 53970, in place_menu
NameError: global name 'quit' is not defined

如果我尝试“退出()”。我听说'提升'就像需要关闭程序一样,但我不清楚这意味着什么(我是Python的新手)以及我将如何做到这一点。

所以,我的问题是双重的。

首先,我是否可以在循环中放置一些用于识别按键的内容,这些内容会识别出被点击的“X”并关闭?

其次,是否有适当的命令才会关闭程序?我无法弄清楚为什么这些命令不起作用,而且我有很多人抱怨使用它崩溃的程序,或者他们必须使用ctrl-alt-del,或者其他什么。我相信

import os
try:
  os._exit(return_code)
except:
  pass

会起作用,但在这一点上,我不确定我是否足够胜任python以适当地部署它。提前谢谢!

2 个答案:

答案 0 :(得分:5)

你有没有机会

import sys

因为那应该有效!

答案 1 :(得分:3)

  

NameError:未定义全局名称“sys”

在使用sys.exit()之前,您必须import sys

这是退出该计划的最佳方式。以_开头的函数名称被视为内部函数名称,除非您真的尝试做一些奇怪的事情,否则不应该使用它们。