assert(断言)是什么?
在 Python 中,assert(断言)用于判断一个表达式,然后在表达式为 False 时触发异常。断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况。

断言 assert 一般在开发调试阶段使用,而非在生产环境中使用。断言 assert 在用户定义的约束条件不满足时,就触发 AssertionError 异常。它主要功能是帮助程序员调试程序,从而保证程序运行的准确性。
在一个程序还没有完善之前,我们不知道程序在哪里会出错。与其让它在运行出现崩溃,不如在出现错误条件时就已经让它抛出错误,此时就需要用到断言 assert 了。
Python assert 语法
在 Python 中,我们可以使用 assert 关键字来实现断言。
语法:
assert condition, message说明:
condition 是必选的,它表示判断的表达式。message 是可选的,它表示抛出异常时的提示文本。assert 会判断条件(condition)是否成立。如果不成立,则抛出异常。
当包含 message 时,下面 2 种写法是等价的:
# 写法 1
assert condition, message
# 写法 2
if not condition:
raise AssertionError(message)当不包含 message 时,下面 2 种写法是等价的:
# 写法 1
assert condition
# 写法 2
if not condition:
raise AssertionError()此外需要注意的是,assert 是一个关键字,而不是一个函数。因此我们不能使用 “()”。
# 正确
assert condition, message
# 错误
assert(condition, message)如果使用 assert(condition, message) 这种写法,此时 (condition, message) 会被 Python 当作一个元组。非空元组的布尔值永远是 True,这会导致断言彻底失效,永远不会报错!
Python assert 示例
接下来,我们通过几个简单的例子来讲解 Python assert 是如何使用的。
示例:assert 基本用法
def check(num):
# 自定义错误提示信息
assert type(num) == int, '必须传入整数类型!'
print('参数校验通过')
check('666')运行结果如下。
AssertionError: 必须传入整数类型!分析:
对于 assert 来说,如果条件为 False,它会立即抛出错误,这比返回一个 “False” 的结果更加地直观。
