您现在的位置是:课程教程文章
python assert是什么
2023-12-18 21:26课程教程文章 人已围观
-
Python爬虫高级开发/大数据抓取/从入门到
Python爬虫高级开发/大数据抓取/从入门到... -
Python+人工智能之Python3.x异常和错误教程
Python+人工智能之Python3.x异常和错误教程课程咨询和资料获取请加老师QQ1011800132 作为 Python 初学者,在刚学习 Python 编程... -
python全栈开发/自动化测试公开课,测试人
python全栈开发/自动化测试公开课,测试人微信扫码 ①领取更多软件测试课程视频、软件、学习笔记、面试题、综合资料... -
用python编写QQ机器人+微信机器人实现淘宝
用python编写QQ机器人+微信机器人实现淘宝...
assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出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平台,欢迎关注!
课程教程:python assert是什么上一篇:python中pip怎么调用
下一篇:没有了