百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python中如何使用断言-assert,它起到什么样的作用

off999 2024-12-27 15:58 34 浏览 0 评论

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

本文章来自腾讯云 作者:somenzz

私信小编回复01可领取学习资料以及学习视频

今天分享Python中:assert。

assert 的中文含义就是断言,assert something 意思就是我断定 something 是对的,如果不对,此处抛出异常,程序终止运行。这里的对或者错,在 Python 中就是 True 或 False。语句

assert 1 == 2

就相当于

if __debug__:
    if not 1 == 2: raise AssertionError

这里的 debug 是一个常数,如果 Python 程序在执行时加了参数 -o ,比如 python test.py -o ,那么 debug 的值就为 False,于是所有的 assert 语句都将失效。反之就会生效。

不过需要注意的是,直接对 debug 赋值是非法的,因为它在解释器开始运行时就已经确定了,中途无法再进行修改。另外要注意的是,assert 后的表达式中不能使用括号,如下面的代码,会报语法错误的警告,但不会抛出异常,后面那行代码是正确的写法。

>>> assert(1==2,'this should fail')
<stdin>:1: SyntaxWarning: assertion is always true, perhaps remove parentheses?
>>> assert 1==2,'this should fail'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError: this should fail
>>>

到这里你大概已经知道了,assert 可以用来做参数的检查,防止出现 bug,当出现问题时可以根据消息快速定位至问题处,提高 debug 效率。比如下面就是一种非常常见的用法:

def func(input):
    assert isinstance(input, list), 'input must be type of list'
    # 下面的操作都是基于前提:input必须是list
    if len(input) == 1:
        ...
    elif len(input) == 2:
        ...
    else:
        ... 

当然你可能会问了,我使用 if 语句来判断,不也是可以的么,当然可以,只是他们两者的使用场景不太一样。在重要的环节,比如判断用户是否是管理员,那么必须使用 if,因为 assert 是可以通过 -o 参数来关闭的。在一些非重要的环节,比如写代码的初期,程序还不够健壮,使用 assert 来断言,写代码的行数更少,也更优雅。其实,有没有 assert ,都不应该影响程序的正常运行,assert 的作用是可以让我们后期维护代码更加方便。

合理的使用 assert 可以增加代码的健壮度,同时也方便开发人员定位问题。当程序中出现的各种情况都是预料之中的时候,应该使用 if 来处理,当程序中要限定一些条件时,可以方便的使用 assert 简化处理。需要注意的是无论有没有 assert,都不应该影响程序的正常运行,assert 的作用是可以让我们后期维护代码更加方便,另外对于程序在运行时抛出的异常,看情况要进行捕获与否。

相关推荐

怎么用火绒关闭win安全中心(win10火绒安全软件怎么关闭)

一、火绒防火墙关闭方法在电脑上运行火绒软件后,点击首页界面的“防护中心”,在病毒防护界面可以关闭文件、U盘、邮件等保护功能,。系统防护:在该界面可以关闭系统防护功能,。网络防护:可以关闭网络保护等功...

微软应用商店下载手机版(微软应用商店在哪下)

、在桌面任务栏找到微软应用商店,点击并打开。2、进入页面后点击【应用】,进入应用页面。3、在页面里往下移动,找到热门应用,找到一个软件,点击进入。4、进入页面后,点击【安装】,软件会自动安装,安装完毕...

win11系统怎么查看电脑配置(win11怎么查看系统版本)

答:win11查看电脑配置步骤如下。1.点击下方任务栏的windows图标或者按下键盘“windows键”打开开始菜单。2.在开始菜单中找到“设置”或“settings”,一般是右上角的齿轮状按钮,3...

麦克风没坏但是没声音(麦克风没声怎么回事)

几种可能性,供您参考:1、麦是完全好的(其它机子上可以用)2、插孔没有插错3、音量控制里的麦克风并没有静音掉4、声卡驱动已重装过N次,新的旧的都试过了5、音量控制→属性→录音→麦克风下面的勾...

win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
wps office是干什么的(wps office是干什么的可以卸载吗)

   WPSOffice一站式办公服务平台,具有可兼容Word、Excel、PPT三大办公组件的不同格式,支持PDF文档的编辑与格式转换集成思维导图、流程图等诸多功...

百度网页(百度网页自动翻译怎么设置)

1、百度的新闻源网站太多了,基本上大型的商业门户+政府官方的媒体、机构部门都是。2、出现在【百度新闻】里的网站都是新闻源网站。3、怎么判断一个网站是不是新闻源:1)在百度新闻下直接搜网站名字,如果出现...

外国网站的浏览器下载(外国网站的浏览器下载Games)

答,可在浏览器上面下载所需要的视频/音乐的名称,下载完毕后,按所给的排列表找出所需要的视频/音乐。如果是喜欢的视频/音乐它在浏览器里边都有分类,可详细的介绍一下自己吧,还可以在古典音乐或者名著导读介绍...

京东攒机助手(京东攒机在哪)
京东攒机助手(京东攒机在哪)

自己在京东买的配置,以为身边的人能帮忙组装,但是好像超过了个人的认知,所以无奈之下只能在京东找专业人士进行安装,挺快,前一天傍晚下单,第二天上午上班就来了,组装师傅挺好,挺有耐心,业务也挺熟练,走线看起来也不错,买的机箱是师傅从来没有接触过...

2025-11-14 22:03 off999

腾讯电脑管家和360哪个好(腾讯电脑管家好用还是360好用)

两个都很好。1.腾讯电脑管家和360卫士都是电脑上最常见的免费杀毒软件,两款软件在病毒查杀上都是首屈一指的。2.360卫士在功能上十分丰富,从木马查杀到电脑清理以及优化加速都是一应俱全的,而且还集成了...

笔记本突然没声音(笔记本突然没声音是什么原因)

可能是因为电脑声音驱动设备故障导致电脑没有声音。解决方法:使用Win+X快捷键,然后在弹出的窗口中点击“设备管理器”选项,之后点击“打开声音、视频和游戏控制器”选项,打开的属性界面查看运行是否正常,或...

大白菜一键装机win7系统(大白菜装系统教程win7)

1.电脑开机按f2或del进bios里面,启动项里面设置U盘启动,保存退出重启。2.键盘上一直按f12或f10,选择大白菜的u盘,进入pe界面,键盘按上下健移动,选择2003pe或win10pe,按回...

迅雷在线资源网观看(迅雷资源网 1080p 下载)
  • 迅雷在线资源网观看(迅雷资源网 1080p 下载)
  • 迅雷在线资源网观看(迅雷资源网 1080p 下载)
  • 迅雷在线资源网观看(迅雷资源网 1080p 下载)
  • 迅雷在线资源网观看(迅雷资源网 1080p 下载)
电脑windows密钥怎么查(windows密钥怎么看)

Win10系统查看并激活产品密钥的方法为:1、首先、进入到电脑屏幕的首页,在左上角会看到界面首页的“此电脑”选项。2、右键单次点击“此电脑”选项,在弹出的菜单快捷栏中选择最下方的“性”选项,并进行点击...

深度技术ghost xp sp3 如何安装

1、ghostxpsp3快速装机版使用ghost镜像来安装。方便快捷易操作。2、电脑开机进入bios后设置成光驱启动。设置方法参阅主板说明书。3、放入安装光盘后保存退出。电脑自动重启后光盘开始引导...

取消回复欢迎 发表评论: