Python 基础总结:assert
的使用详解
在 Python 编程中,assert
(断言)是一个非常实用的调试工具,它可以帮助我们在代码运行过程中快速验证某个条件是否成立。如果条件不满足,assert
会抛出异常并中止程序运行,这在测试与调试阶段尤为高效。
1. 基本语法
assert condition, message
- condition:布尔表达式,如果为
True
,程序继续执行;如果为False
,抛出AssertionError
。 - message(可选):断言失败时的提示信息。
示例:
x = 5
assert x > 0, "x 必须是正数"
当 x > 0
时正常运行,否则抛出:
AssertionError: x 必须是正数
2. 使用场景
2.1 检查函数输入
def sqrt(x):
assert x >= 0, "输入必须是非负数"
return x ** 0.5
print(sqrt(9)) # 正常
print(sqrt(-4)) # 抛出 AssertionError
2.2 验证逻辑条件
def divide(a, b):
assert b != 0, "除数不能为0"
return a / b
2.3 测试代码预期行为
result = [i for i in range(5)]
assert len(result) == 5, "结果长度不正确"
3. 与单元测试配合
虽然 assert
常用于简单验证,但在单元测试中,推荐使用测试框架自带的断言方法(如 unittest.TestCase.assertEqual
)来替代。不过在临时脚本或快速调试时,assert
更简洁高效。
def is_even(n):
return n % 2 == 0
assert is_even(4)
assert not is_even(5)
4. 注意事项
-
assert
会在优化模式下被移除
如果使用python -O
(优化模式)运行,所有assert
语句都会被忽略,所以它不适合做关键业务逻辑校验。 -
只用于调试阶段
在生产环境,建议用显式的条件判断与异常处理来替代。 -
消息尽量明确
提示信息应清晰说明出错原因,方便快速定位问题。
5. 小结
assert
是 Python 中简单而强大的调试工具,适合用来验证假设条件和不变量。合理使用断言,可以让你的代码更健壮,也能更快地发现和定位问题。
✅ 记住:断言是帮你“提早发现问题”的好伙伴,但它不是替代业务逻辑校验的方案。