assert语句的作用是:在一个程序还没完善或者测试好之前,我们不知道程序那里会出错,与其让他在运行时崩溃,不如在出现错误条件时就触发异常。assert可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况。
assert的语法为:
assert expression
等价于:
if not expression:
raise AssertionError
如果这里expression返回的是false,那么assert语句就会返回AssertionError。
assert后面也可以紧跟返回的错误的参数:
assert expression [, arguments]
等价于:
if not expression:
raise AssertionError(arguments)
如果这里expression返回的是false,那么assert语句就会返回AssertionError:arguments。
对于深度学习常用的assert常用在读取文件上:
assert os.path.exists(data_path), "{} path does not exist.".format(data_path)
上面这段代码意思为:若data_path这个路径存在,即os.path.exists(data_path)为True,则继续执行下面的代码,若为False,则触发异常并显示"data_path path does not exist.“