前言
assert关键字更像是一个假设,如果作者的假设条件成立,则程序正常并且良好的运行,但是如果假设不成立,那么程序就会报错,并且终止运行(这样直接避免了引起更大的错误)。
换句话说:当我们编写代码时,通常需要确保某些条件为真,否则代码可能会出现错误。在这种情况下,我们可以使用断言来检查这些条件。断言是一种声明式语句,它用于测试程序中的条件是否为真。如果条件为假,就会引发AssertionError异常,如果条件为真,程序就会继续执行。
一、用法
1-0、语法格式
assert 表达式,描述错误的字符串
如果发生异常就返回其后的描述错误的字符串。
1-1、检验传入参数的合法性
def student(student_num): """ 断言传入的学生数量必须大于0。 """ assert student_num>0, '学生数量必须大于0!!!'
1-2、如果有多个条件,尽量多使用几个断言
assert student_num>0, '学生数量必须大于0!!!' assert student_age>0, '学生年龄必须大于0!!!' # 相比于下边的写法,多写几个断言更容易判断出哪里出了问题。 # assert student_age>0 && student_num>0, '学生数量和年龄必须大于0!!!'
1-3、简单示例
def divide(a, b): assert b != 0, "Cannot divide by zero!" return a / b print(divide(10, 2)) # 输出:5.0 print(divide(10, 0)) # 引发 AssertionError: Cannot divide by zero!
在这个示例中,divide()函数用于计算两个数字的除法。在函数中使用断言来确保除数b不为零。如果b为零,则断言失败,引发AssertionError异常,并输出错误消息"Cannot divide by zero!"。我们可以看到,当我们调用divide(10, 2)时,函数返回了正确的结果5.0;但是当我们调用divide(10, 0)时,断言失败并引发了异常。
二、缺点
缺点:频繁的调用会极大的影响程序的性能,增加额外的开销。此外:需要注意的是,断言并不是用来处理运行时错误的工具。它们只是用于测试某些条件是否为真。在编写生产代码时,应该尽量避免使用断言,因为它们可能会隐藏一些错误,并使代码难以调试。
三、总结
在Python中,断言是一种用于测试代码正确性的机制。它用于在代码中检查某个条件是否为真,如果不为真,就会引发一个异常。断言通常用于编写测试代码,以确保代码在满足某些条件时能够正确地运行。
参考文章:
总结
😴