assert让代码健壮一点点

什么是 assert

主要用来测试代码的问题,使用 assert 来检测代码时,如果 为true 就通过,如果为 False 就会抛出错误并定位,从而在具体的位置修改代码
assert 使用

assert 条件
assert 条件, “自定义错误信息”

当条件为 True 时就直接通过了,为 False 时就抛出了 AssertionError 的错误,另外还可以自定义错误信息。
下面这个简单的例子进行理解:

assert 常用于参数类型的检测,结合函数 isinstance
当条件为为 False 时抛出异常,
所传入的参数不是列表 List, 抛出异常

在使用 pyhon -O xxx.py来执行时,直接忽略所有定义的 assert.
同样的代码在命令行中执行,不加 O 跟加 O 的运行效果,加了 -O 忽略了assert, 没有抛出错误信息

在开发过程中要特别注意这个问题
比如有如下模块,需要检查用户权限 ,产品id是否存在的方法

如果正常操作是可以避免非法更新数据的,但如果直接使用 python -O xxx.py 执行则是会造成 bug 的。
总结:对于一些数据类型的检查及已和条件的断言,直接使用 assert 比较好,而对业务逻辑的判断还是用 try…except 方式比较好。