assert是断言语句,它是将调试断言插入程序的一种简便的方法,在我们编写程序的时候我们不知道代码哪里会有错误,这样在运行程序的时候我们不知道具体的错误会出现在哪里,对我们调试代码也增加了难度,assert语句的功能就是把你觉得可能出错得代码进行检查:
assert expression(当expression为True时,代码直接执行不会有报错显示expression(当 ,["," expression](当expression为False时,就会抛出错误,直接这里)
下面举个例子:
assert os.path.exists(model_weight_path), "file {} dose not exist.".format(model_weight_path)
这段代码的意思就是os.path.exists(model_weight_path)如果文件model_weight_path在指定的路径下,那么正常执行代码,如果文件不在指定路径下,那么就抛出错误,错误的提示信息为"file {} dose not exist.".format(model_weight_path)
在Python的官方文档中:
assert expression,["," expression] 等价于下面的语句:
if __debug__: if not expression: raise AssertionError
补充:一般情况下__debug__为True
也就是如果not expression,那么就抛出异常和上面assert的解释一样,采用if语句更方便理解。
如有不对的地方,请大家多多指教!!