Python 拓展之断言

本文字数:1267 字

阅读本文大概需要:4 分钟

写在之前

在昨天的文章中(

零基础学习 Python 之处理异常

)中学习了处理异常的正确姿势,今天我们继续来学习“错误 & 异常”里比较重要的一个知识点:「assert」。

assert 翻译成中文就是「断言」的意思,它是一句等价于布尔真的判断,如果它发生异常的话,意味着表达式为假。

断言(assert)

首先让我们先来看点简单的代码,从代码中理解 assert。

assert 的应用场景很像它在汉语中的意思:当程序运行到某个节点的时候,就断定某个变量的值必然是什么,或者是对象必然拥有某个属性等。简单点来说的话,就是断定是什么东西就必然是什么东西,如果不是,就抛出异常。

接下来我们再来看一段稍微复杂点的代码:

在上面的代码中,我们设置的是 deposit() 和 withdraw() 方法的参数 amount 必须大于零,这里用的就是断言,如果不满足条件的话就会直接报错。比如像下面这样来运行:

出现的结果如下所示:

这就是断言 assert 的引用,那么什么时候是引用断言的最佳时机呢?如果没有特殊的目的的话,断言主要应用于以下情况(参考《Python使用断言的最佳时机》):

1.防御性的编程;

2.运行时对程序逻辑的检测;

3.合约性检查(比如前置或者后置条件);

4.程序中的常量;

5.检查文档。

写在之后

assert 就这些东西,「错误 & 异常」到这差不多就结束了。异常处理是编程语言或者计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况。

通过异常处理,我们可以对用户在程序中的非法输入进行控制和提示,以防程序崩溃。从进程的视角来看,硬件终端属于可恢复异常,虽然异常一般与程序流本身无关。

异常是一种很有用的机制,用于通知外界该子程序不能正常执行,比如输入的数据无效或者所需的资源不可用等,如果系统没有异常机制,则程序员需要用返回值来标示发生了哪些错误。

最后,如果你觉得本篇文章对你有所帮助的话,欢迎点赞转发,先行谢过。

The end。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180905A0AD8C00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券