2.1 用断言加一层保险

断言语句:
一种调试工具,用来测试某个断言条件
如果断言条件为真,则程序将继续正常执行;如果条件为假,则会引发AssertionError异常并显示相关错误消息

why不用普通异常来处理?
断言用于程序内部自检,如声明一些代码中不可能出现的条件,不能用来处理运行时错误的机制

 

语法:

assert_stmt ::= "assert" expression1 ["," expression2]


其中 expression1 是需要测试的条件,可选的 expression2 是错误信息,如果断言失败则显示该消息

 

注意事项:
1. 不要使用断言验证数据

可能出现全局禁用断言的情况,那么程序会引发安全问题

如何避免:使用常规的if语句验证,并在必要时触发验证异常

2. 永不失败的断言

在将一个元组作为assert语句中的第一个参数传递时,断言条件总为真,因此永远不会失败

如:

assert(1 == 2, 'This should fail')

因为在python中非空元组总为真值

python3会给出语法警告:SyntaxWarning: assertion is always true, perhaps remove parentheses?

 

总结:

♦ python断言语句是一种测试某个条件的调试辅助功能,可作为程序的内部自检;

♦ 断言应该只用于帮助开发人员识别bug,它不是用于处理运行时错误的机制;

♦ 设置解释器可全局禁用断言。

posted @ 2022-06-27 16:12  瑟庄妮  阅读(121)  评论(0)    收藏  举报