当前位置:   article > 正文

Python 的 assert 语句_python assert.fail

python assert.fail

什么是 assert

Python 的 assert 语句,可以说是一个 debug 的好工具,主要用于测试一个条件是否满足。如果测试的条件满足,则什么也不做,相当于执行了 pass 语句;如果测试条件不满足,便会抛出异常 AssertionError,并返回具体的错误信息(optional)。

它的具体语法是下面这样的:


assert_stmt ::=  "assert" expression ["," expression]
  • 1
  • 2

我们先来看一个简单形式的assert expression,比如下面这个例子:


assert 1 == 2
  • 1
  • 2

它就相当于下面这两行代码:


if __debug__:
    if not expression: raise AssertionError
  • 1
  • 2
  • 3

再来看assert expression1, expression2的形式,比如下面这个例子:


assert 1 == 2,  'assertion is wrong'
  • 1
  • 2

它就相当于下面这两行代码:


if __debug__:
    if not expression1: raise AssertionError(expression2)
  • 1
  • 2
  • 3

这里的__ debug__是一个常数。如果 Python 程序执行时附带了-O这个选项,比如Python test.py -O,那么程序中所有的 assert 语句都会失效,常数__ debug__便为 False;反之__debug__则为 True。

不过,需要注意的是,直接对常数__debug__赋值是非法的,因为它的值在解释器开始运行时就已经决定了,中途无法改变。

此外,一定记住,不要在使用 assert 时加入括号,比如下面这个例子:


assert(1 == 2, 'This should fail')
# 输出
<ipython-input-8-2c057bd7fe24>:1: SyntaxWarning: assertion is
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/559896
推荐阅读
相关标签
  

闽ICP备14008679号