你常常看到 Python 代码中的 assert 是个啥?

本文介绍了Python中的assert关键字,用于代码调试和条件验证。assert用于检查代码逻辑,当条件为真时通过,否则抛出错误。在涉及数据操作时,推荐使用try-except处理异常。还提供了assert用法示例和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前咱们说过单元测试相关的用法,今天给你讲的这个也是经常会在代码中使用到的,倘若你看过一些 Python 的项目源代码,想必你应该会看到它的身影 —— assert

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

什么是 assert 呢?

其实不止 Python ,很多主流的语言都有 assert ,它主要是用来检测调试你的代码问题,当你使用 assert 来检测你的代码的时候,如果是 True ,它就会直接通过,当它是 False 的时候,就会抛出错误,然后你就可以根据错误进行定位,从而在具体的位置修改代码。

怎么使用 assert 呢?

assert 的使用是这样,使用 assert 关键字,后面添加条件就可以了:

assert 条件

看下这样简单的例子你就明白了:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

可以看到当条件为 True 就直接通过了, False 就抛出 AssertionError。

通常情况下, assert 条件为 Fasle 之后,后面还可以添加你自定义的错误信息:

assert 条件 , “你定义的错误信息”

像这样:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其实 assert 相当于这样:



if not condition:  
    raise AssertionError()


所以,当你对某些操作能够肯定它什么是对的,什么是错的时候,你就可以在代码中使用 assert 进行检测,比如说有一个方法,需要传入 int 参数,但是它不能为 0 ,那么你就可以这样:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

还有些时候对参数类型的检测也可以使用 assert ,通过 isinstance 进行判断,像这样:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当我们传入 list 类型没问题,但是传入别的类型就会告诉我们错误信息:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在使用 assert 的时候,有一点需要注意的是,通过命令来运行的时候,使用 python3 -O xxx.py 可以直接忽略掉 xxx.py 文件中所定义的所有 assert。

比如在上面的例子中,我传入的不是 list 类型,但是我使用命令添加了 -O 选项,就会忽略我的 assert :

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所以你在使用 assert 的时候要注意一点的是,如果你对一些条件是能够确定的,可以使用 assert ,但是对于一些涉及到对数据的增删改的时候,最好就不要去使用 assert 了,比如这样:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在正常的运行下,这样的操作可以在一定程度上避免了用户和权限相关问题,但是如果我们直接用 python3 -O xxx.py 执行, assert 瞬间失去了作用,那这时候是不是就可以直接 update 了呢?显然这样做是有 bug 的。

所以对于涉及到数据的增删改,还是用我们之前说过的 try…except,raise 对代码进行异常解决为好。而对于一些数据类型的检测以及你已知的条件断言,直接使用 assert 可以让你的代码更加健壮一些。

以上就是“你常常看到 Python 代码中的 assert 是个啥?”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值