导语:
本文主要介绍了关于python assert是什么的相关知识,包括assert_fail,以及assert这些编程知识,希望对大家有参考作用。
断言关键字称为“断言”。当该关键字后面的条件为 false 时,程序会自动崩溃并抛出 AssertionError 异常。
在什么情况下我们需要这样的代码?它在我们测试程序时很有用,因为我们可以在错误条件发生的那一刻“自毁”,而不是让错误的条件导致程序在以后莫名其妙地崩溃。
一般来说,我们可以使用 Ta 在程序中放置检查点。当我们需要确保程序中的某个条件必须为真才能让程序正常工作时,assert 关键字非常有用。
assert语句的语法格式
assert expression [, arguments]
assert 表达式 [, 参数]
附加说明:assert也可以用于多个表达式的: assert expression1, expression2。
注意:表达式=false 时,则执行其后面的异常。
我们看几个示例
1、单个表达式:
a = 1
assert a < 0, '出错了,a大于0 啊'
print('这里不会输出')
输出:
Traceback (most recent call last):
File "main.py", line 3, in <module>
assert a < 0, '出错了,a大于0 啊'
AssertionError: 出错了,a大于0 啊
2、多个表达式:
a = 1
b = -1
assert a > 0, b < 0
print('正常输出,表达式返回真了') # 输出:正常输出,表达式返回真了
3、尝试捕获 assert 异常:
import traceback
try:
assert a < 0
except AssertionError as aeeor: # 明确抛出此异常
# 抛出 AssertionError 不含任何信息,所以无法通过 aeeor.__str__()获取异常描述
print('AssertionError', aeeor, aeeor.__str__())
# 通过 traceback 打印详细异常信息
print('traceback 打印异常')
traceback.print_exc()
except: # 不会命中其他异常
print('assert except')
try:
raise AssertionError('测试 raise AssertionError')
except AssertionError as aeeor:
print('raise AssertionError 异常', aeeor.__str__())
输出:
AssertionError
traceback 打印异常
Traceback (most recent call last):
File "main.py", line 7, in <module>
assert a < 0
AssertionError
raise AssertionError 异常 测试 raise AssertionError
4、函数调用抛出异常:
# 除法运算
def foo(value, divide):
assert divide != 0
return value / divide
print('4除以2 =', foo(4, 2)) # 执行成功
print('4除以0 =', foo(4, 0)) # 抛出异常
输出:
4除以2 = 2.0
Traceback (most recent call last):
File "main.py", line 8, in <module>
print('4除以0 =', foo(4, 0)) # 抛出异常
File "main.py", line 3, in foo
assert divide != 0
AssertionError
python学习网,免费的在线学习
台,欢迎关注!
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何选择python下载的版本10/24
- ♥ 初学者学习python2还是python301/04
- ♥ 如何在 Python 中的 numpy 中生成掩码图像09/21
- ♥ 教你用python实现梯度下降算法12/01
- ♥ 如何包装python代码09/26
- ♥ Python len()函数详解:获取字符串长度或字节数09/23
内容反馈