Python 入门基础知识 - assert - 简化的raise语句

assert - 简化的raise语句

在Python中使用assert语句同样可以引发异常。但与raise语句不同,assert语句是在条件测试为假时,

才引发异常。assert语句的一般形式如下:

1
assert <条件测试>, <异常附件数据> # 其中异常附加数据是可选的

实例如下

1
l = []
1
assert len(l) # 如果列表为空,则使用assert引发异常

异常抛出如下

1
2
    assert len(l)
AssertionError
1
assert len(l), 'Error'

异常输出如下

1
2
    assert len(l), 'Error'
AssertionError: Error
1
2
3
4
5
6
try:
    assert len(l), 'Error'
except:
    print('Error')
else:
    print('No Error')  

输出如下

1
Error
1
2
l.append(1)  # 向列表中添加成员
assert len(l)  # 此时列表不为空,assert将不会引发异常

从上面的实例可以看出,assert相当于raise语句和if语句联合使用。

例如如下assert语句

1
assert len(l)

可以改写如下

1
2
3
if __debug__:
    if len(1):
        raise AssertionError, <附加数据>

需要注意的是,assert语句一般用于开发时对程序条件的验证。只有当内置__debug__为True时,assert语句才有效。

当Python脚本为-O选项编译成字节码文件时,assert语句将被移除。

实例环境声明

1
2
# _*_ coding: utf-8 _*_
# Python 2.7.13  
Licensed under CC BY-NC-SA 4.0
最后更新于 Jul 25, 2025 15:09 +0800