【发布时间】:2016-02-18 11:29:26
【问题描述】:
您好,我在 python 控制台中使用 sys.exit 时遇到问题。它与 ipython 一起工作非常好。我的代码大致是这样的:
if name == "lin":
do stuff
elif name == "static":
do other stuff
else:
sys.exit("error in input argument name, Unknown name")
如果知道程序知道跳转到 else 循环,它就会崩溃并给我错误消息。如果我使用 IPython,一切都很好,但如果我使用 Python 控制台,控制台会冻结,我必须重新启动它,这有点不方便。
我在 MAC 上使用 Python 2.7 和 Spyder。
是否有一种解决方法可以使我的代码在 Python 和 IPython 中以相同的方式工作?这是 spyder 的问题吗?
感谢您的帮助
【问题讨论】:
-
当你尝试
sys.exit(1)时会发生什么 -
为什么要退出控制台?这仅在您执行像
$ python myprog.py这样的程序 时才有意义。 -
如果我使用 sys.exit(1) 会发生同样的情况,但消息消失了。我在一个计算复杂相位并将其添加到数据的函数中使用它。如果现在选择的方法不在列表中,则程序会中断,以防止进一步计算未定相的数据。因此,最好停止这一点并给用户(或我自己)一个提示是什么原因