Skip to main content

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

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

assert - 简化的raise语句

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

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

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

实例如下

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

异常抛出如下

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

异常输出如下

    assert len(l), 'Error'
AssertionError: Error
try:
    assert len(l), 'Error'
except:
    print('Error')
else:
    print('No Error')

输出如下

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

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

例如如下assert语句

assert len(l)

可以改写如下

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

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

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

实例环境声明

# _*_ coding: utf-8 _*_
# Python 2.7.13
版权声明

版权声明

durban.zhang 创作并维护的 Walkerfree 博客采用 创作共用保留署名-非商业-禁止演绎4.0国际许可证。本文首发于 Walkerfree 博客(http://www.walkerfree.com/),版权所有,侵权必究。本文永久链接:http://www.walkerfree.com/article/67