【问题标题】:Spyder IDE: Why does assert not work?Spyder IDE:为什么断言不起作用?
【发布时间】:2012-09-30 22:23:06
【问题描述】:

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

assert False

这应该会引发 AssertionError,就像在我的正常 Python 安装中一样。但是,在 Spyder(ipyton 和内部控制台)中,它不会引发任何错误。这必须在某个地方打开吗?或者这是一个错误?

【问题讨论】:

    标签: python spyder


    【解决方案1】:

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

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

    if False:
        raise ValueError("expected True, received", False)
    

    【讨论】:

    • 好的,谢谢你的解释。我无法在 spyder 中找到可以指定 python 选项的位置,但这很可能是答案。
    • 您可以在 Python 程序中通过测试 sys.flags.optimize (docs.python.org/library/sys.html#sys.flags) 来检查是否选择了 -O
    • sys.flags.optimize 给出 2,所以这回答了问题。谢谢!
    猜你喜欢
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 2012-02-06
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多