7.3. assert 语句
assert 语句是在程序中插入调试性断言的简便方式:
- assert_stmt ::= "assert"
expression
[","expression
]
简单形式 assert expression
等价于
- if __debug__:
- if not expression: raise AssertionError
扩展形式 assert expression1, expression2
等价于
- if __debug__:
- if not expression1: raise AssertionError(expression2)
以上等价形式假定 debug
和 AssertionError
指向具有指定名称的内置变量。 在当前实现中,内置变量 debug
在正常情况下为 True
,在请求优化时为 False
(对应命令行选项为 -O
)。 如果在编译时请求优化,当前代码生成器不会为 assert 语句发出任何代码。 请注意不必在错误信息中包含失败表达式的源代码;它会被作为栈追踪的一部分被显示。
赋值给 debug
是非法的。 该内置变量的值会在解释器启动时确定。