Python Spyder IDE:为什么断言不起作用?

Python Spyder IDE:为什么断言不起作用?,python,spyder,Python,Spyder,我在Mac OS(10.7.6)上使用Spyder 2.2.0dev,正如它在启动时所说,它使用Python 2.7.3(默认值,2012年7月24日,20:20:13)。 我打字的时候 assert False 这应该会引发断言错误,就像在我的普通Python安装中一样。但是,在Spyder(ipyton和内部控制台)中,它不会引发任何错误。这需要在什么地方打开吗?或者这是一个bug?当使用-O选项调用python时,会跳过断言。我不熟悉spyder,但我敢说,某些选项导致python运行“

我在Mac OS(10.7.6)上使用Spyder 2.2.0dev,正如它在启动时所说,它使用Python 2.7.3(默认值,2012年7月24日,20:20:13)。 我打字的时候

assert False

这应该会引发断言错误,就像在我的普通Python安装中一样。但是,在Spyder(ipyton和内部控制台)中,它不会引发任何错误。这需要在什么地方打开吗?或者这是一个bug?

当使用
-O
选项调用python时,会跳过断言。我不熟悉spyder,但我敢说,某些选项导致python运行“优化”

因为断言并不总是运行的,所以它们不适合于程序流。如果由于某个条件失败而希望程序在某个点停止,请在
If
套件中引发一个有意义的异常


好的,谢谢你的解释。我无法在spyder中找到可以指定python选项的位置,但这很可能就是答案。您可以在python程序中通过测试sys.flags.optimize检查是否选择了
-O
,sys.flags.optimize给出了2,因此这就回答了问题。谢谢
if False:
    raise ValueError("expected True, received", False)