断言语句可以方便的往程序里插入用于调试的断言。
语句结构: assert_stmt ::= "assert" expression ["," tips_expression]
每次只能断言一个推理[1],如果断言失败,可以提供原因[2]。
断言语句这种简单的结构,等价于:
if __debug__:
if not expression:
raise AssertionError(tips_expression)
__debug__
是一个内置的变量,默认情况下是 True
,当需要改变为 False
的时候可以在命令行加上 -O
的参数。输入了可选参数后,在编译时会自动过滤断言语句。
失败的时候,给断言提示是非常有必要的,它会显示在异常的回溯栈。
给 __debug__
赋值是不行滴,因为内置变量的值,在解释器启动的时候就已经定好了。
网友评论