我是靠谱客的博主 深情大山,最近开发中收集的这篇文章主要介绍你常常看到 Python 代码中的 assert 是个啥?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

作者|小帅b

来源|学习python的正确姿势

之前咱们说过单元测试相关的用法,今天给你讲的这个也是经常会在代码中使用到的,倘若你看过一些 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 可以让你的代码更加健壮一些。

一起学Java




一起学Python

------------------


如果觉得文章有点用的话,请毫不留情地素质三连吧,分享、点赞、在看、收藏,我不挑,因为这将是我写作更多优质文章的最强动力。
往期精选(????猛戳可查看)
1、十分钟快速了解Pandas的常用操作!

2、全平台都能用的pandas运算加速神器
3、整理了我开始分享学习笔记到现在超过250篇优质文章,涵盖数据分析、爬虫、机器学习等方面,别再说不知道该从哪开始,实战哪里找了

最后

以上就是深情大山为你收集整理的你常常看到 Python 代码中的 assert 是个啥?的全部内容,希望文章能够帮你解决你常常看到 Python 代码中的 assert 是个啥?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部