断言

断言语句可以方便的往程序里插入用于调试的断言。
语句结构: assert_stmt ::= "assert" expression ["," tips_expression]
每次只能断言一个推理[1],如果断言失败,可以提供原因[2]
断言语句这种简单的结构,等价于:

if __debug__: 
    if not expression:
        raise AssertionError(tips_expression)

__debug__ 是一个内置的变量,默认情况下是 True,当需要改变为 False 的时候可以在命令行加上 -O 的参数。输入了可选参数后,在编译时会自动过滤断言语句。
失败的时候,给断言提示是非常有必要的,它会显示在异常的回溯栈。

__debug__ 赋值是不行滴,因为内置变量的值,在解释器启动的时候就已经定好了。


  1. expression ↩

  2. tips_expression ↩

你可能感兴趣的:(断言)