断言的用途

代码中,我们经常会用到assert;

assert的作用很让人迷惑。

事实上,在开发完成之后,上线,assert会被删除,人工删除。

因为assert的本质是程序发出exit()信号,强行中断程序执行。

但实际上,程序应该是一个鲁棒的,能够处理这种异常的。起码,他要能够收集这种异常。

比如一个工业软件,机器正在嘎吱嘎吱的运转,遇到了assert,直接卡死。机器上面的齿轮还在转动,把人的手剁了。

assert在我的理解里,应该是作为一个开发过程中的产物。

不是用来偷懒的。比如一个复杂的逻辑,想不到会不会发生某种场景,就用个assert。

应该是一个中间产物。这个我就不再谈了。

assert放在函数入口进行函数检查。这是不行的。如果函数输入不符合要求,应该raise error.

有可能有段逻辑太复杂了,实在想不到输出,可以用assert检查一下范围。但我觉得也不行。

我甚至觉得一个程序里面,不应该有assert。assert不涉及逻辑,只是在给自己用。有可能有问题的地方,应该raise error。

assert 更多的像是自我测试,检查自己程序的结果,这样会比较好。用在UT上。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值