python中的断言assert

判断一个表达式,表达式为false的时候,直接返回错误,而不必等待程序运行后才发现然后出现崩溃的情况

1.最简单的情况:assert 后面跟一个表达式

(1)如果后面这个表达式为True,那么什么反应都没有

比如是assert 1==1

(2)如果后面这个表达式为False,那么就会报错:AssertionError

assert 1==0

由于后面跟的表达式为False,所以会显示:AssertionError

2.稍微复杂一点的情况:assert后面跟一个表达式,然后再跟一个字符串,

即assert 表达式,字符串

当表达式为True的时候,什么反应都没有

但是当表达式为False的时候,就会输出后面这个字符串

(1)表达式正确,什么反应都没有

assert  1==1,"这个表达式不对"
(2)表达式为False,所以会报错:AssertionError

但是错误描述信息会多出后面跟的那个字符串“这个表达式不对”

assert  1==0,"这个表达式不对"

深度学习代码中实战用到断言assert的一个小例子:

assert os.path.exists(data_root), f"path '{data_root}' does not exists."

显然这个意思就是说如果data_root这个路径存在,那就没有反应,正常运行

如果这个路径不存在,就会输出:path  '路径名比如D:/unet/DRIVE’   does  not  exists.'

你可能感兴趣的:(python,python)