【学习笔记】31、Python中的断言

Python中的断言

、初识断言

功能:Python内置的assert语句(断言)可以用来自动检测Python程序中的错误,让程序更可靠更易于调试。

含义:断言语句是一种调试工具,用来测试某个断言条件,如果断言条件为真,则程序将继续正常执行;如果条件为假,则会引发AssertionError异常并显示相关错误信息。

例子:

上面的例子是商店某商品的打折功能,其中的assert语句是为了确保在任何情况下,通过该函数计算的折后价都在0到原价之间。例子中是打8折,返回折扣价24元,那么要是尝试输入“折扣”是200%呢?

 这时候程序会停止并触发一个AssertionError的异常,因为违反了程序中设置的断言条件。这里还可以得知断言验证失败的具体位置,可以更加轻松的追溯问题所在,极大的加快了调试工作的速度。

为什么不用普通的异常来处理?

断言是为了告诉开发人员程序中发生了不可恢复的错误,对于可以预料的错误,用户可以予以纠正或重试。

断言用户程序内部自检,如声明一些代码中不可能出现的条件,如果触发了某个条件,即意味着程序中存在相应的Bug。

断言是一种调试辅助功能,并不是用来处理运行时错误的机制。

二、断言的语法

assert expression1 [, expression2]

其中expression1是需要测试的条件,可选的expression2是错误消息,如果断言条件为假,则会显示expression2的消息。

If __debug__:

        If not expression1:

                raise AssertionError(expression2)

 

三、注意事项

1、不要使用断言验证数据。

有些情况下设置Python解释器会全局禁用断言,那么所谓的条件会被忽略,条件下面的语句会被执行,从而造成不可预知的风险。

2、不要使用永远为真的断言。

若将一个元组作为断言语句中的第一个参数传递时,断言条件总为真,因为只要非空元组,那么结果一定是为真的,所以断言语句毫无意义。

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP剑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值