我首先需要说,我只是在学习Python。
我正在制作一个简单的python程序,该程序有一个菜单选项,用于通过使用我称为exit的函数退出程序。我已经尝试使退出函数只是调用break,但是当退出函数被调用时,我得到了一个错误。
任何帮助都将是非常感激的。
抱歉没有提早发布代码....
def exit():
break
evade = evade_fw()
# Main program running dialogue
def main(): # menu goes here
opt_list = [xsl_file,
basic_loud_scan,
fw_main,
exit
]
忘掉你自己的exit()
函数吧。您可以简单地执行:
from sys import exit
sys
模块中的exit()
函数将完成这项工作。
了解幕后发生的事情也是值得的。函数sys.exit()
实际上抛出了一个特殊的异常。您也可以显式地这样做,而不需要导入任何内容:
raise SystemExit()
break
用于跳出for
或while
循环,但必须在循环内调用。我猜您希望break
从事件处理程序中跳出程序的主事件循环,这是行不通的,因为,如前所述,break
必须在循环本身内。
相反,你的exit函数可以清理任何资源,例如打开文件,数据库连接等,然后调用[sys.exit()][1]
,这将导致Python解释器终止。您可以选择将状态码传递给sys.exit()
,这将是shell脚本和批处理文件可用的系统退出状态。
import sys
def exit():
# clean up resources
sys.exit() # defaults to status 0 == success