【Python】断言(assert)的用法,你真的懂吗?

您所在的位置:网站首页 communication用法总结 【Python】断言(assert)的用法,你真的懂吗?

【Python】断言(assert)的用法,你真的懂吗?

2023-06-04 01:44| 来源: 网络整理| 查看: 265

【Python】断言(assert)的用法 前言简介用法总结与注意事项

前言

看代码时知道是什么,但写代码时不建议经常使用,一直见,一直不明白,今天来解密。

简介

assertion(断言)在软件开发中是一种常用的调试方式,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告并且退出。

一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。

我们可以通过以下这个简单的例子来理解assert。

>>>assert True # Nothing happens >>> assert False Traceback (most recent call last): File "", line 1, in AssertionError

Python的assert是用来检查一个条件,如果它为真,就不做任何事。如果它为假,则会抛出AssertError并且包含错误信息。例如:

>>> x = 23 >>> assert x > 0, "x is not zero or negative" >>> assert x%2 == 0, "x is not an even number" Traceback (most recent call last): File "", line 1, in AssertionError: x is not an even number

很多人用assert作为一个很快和容易的方法来在参数错误的时候抛出异常。但这样做是错的,非常错误。

在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert() 的用法像是一种"契约式编程",在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个 if 语句:

if(假设成立) { 程序正常运行; } else { 报错&&终止程序!(避免由程序运行引起更大的错误) }

assert 的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向 stderr 打印一条出错信息,然后通过调用 abort 来终止程序运行。

使用 assert 的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。

用法总结与注意事项

1. 在函数开始处检验传入参数的合法性

int resetBufferSize(int nNewSize) { //功能:改变缓冲区大小, //参数:nNewSize 缓冲区新长度 //返回值:缓冲区当前长度 //说明:保持原信息内容不变 nNewSize= 0); assert(nNewSize =0 && nOffset+nSize= 0); assert(nOffset+nSize


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3