我如何退出一个脚本早,像die()命令在PHP?


当前回答

我完全是个新手,但这肯定更干净,更可控

def main():
    try:
        Answer = 1/0
        print  Answer
    except:
        print 'Program terminated'
        return
    print 'You wont see this'

if __name__ == '__main__': 
    main()

...

程序终止

than

import sys
def main():
    try:
        Answer = 1/0
        print  Answer
    except:
        print 'Program terminated'
        sys.exit()
    print 'You wont see this'

if __name__ == '__main__': 
    main()

...

程序终止回溯(最近一次调用):文件“Z:\目录\testdieprogram.py”,第12行,在 main()文件“Z:\目录\testdieprogram.py”,第8行,在main中 SystemExit sys.exit ()

Edit

重点是,该计划顺利和平地结束,而不是“我已经停止!!!!”

其他回答

from sys import exit
exit()

作为参数,您可以传递一个退出码,该退出码将返回给操作系统。默认值为0。

而您通常应该更喜欢sys。退出,因为它对其他代码更“友好”,它实际上所做的只是引发一个异常。

如果你确定你需要立即退出一个进程,并且你可能处于某个异常处理程序中,这个异常处理程序会捕获SystemExit,那么还有另一个函数——os。_exit——它在C级立即终止,不执行任何正常的解释器分解;例如,在"atexit"模块中注册的钩子不会被执行。

在Python 3.5中,我尝试在不使用模块(例如sys, Biopy)的情况下合并类似的代码,而不是使用内置的停止脚本并向用户打印错误消息的模块。以下是我的例子:

## My example:
if "ATG" in my_DNA: 
    ## <Do something & proceed...>
else: 
    print("Start codon is missing! Check your DNA sequence!")
    exit() ## as most folks said above

后来,我发现抛出一个错误更简洁:

## My example revised:
if "ATG" in my_DNA: 
    ## <Do something & proceed...>
else: 
    raise ValueError("Start codon is missing! Check your DNA sequence!")

另一种方法是:

raise SystemExit

只要把quit()放在代码的末尾,就可以关闭一个python脚本。