当前位置:   article > 正文

python中的断言assert_python断言assert

python断言assert

一. 断言的引进
1.什么是断言

断言是作为一种调试工具被发明出来的,用来检查那些“代码写对了就肯定成立”的条件。使用assert断言是学习python 一个非常好的习惯,python assert 断言 句语格式及用法很简单。在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要 assert 断言的帮助。本文主要是讲 assert 断言的基础知识。

2.raise抛出异常

raise的语法格式如下:

raise [Exception [, args [, traceback]]]
  • 1

a=10
b=20
def c():
    if a<b:  #条件为真时,执行下面的代码
        raise Exception('a比b小')
c()
	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

或者

     if age < 18:
         raise Exception('未满18不能看电影')
  • 1
  • 2

语句中 Exception 是异常的类型(例如,NameError)参数标准异常中任一种,args 是自已提供的异常参数。最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。

一个异常可以是一个字符串,类或对象。 Python的内核提供的异常,大多数都是实例化的类,这是一个类的实例的参数。

  1. 断言的作用
    python assert 断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。

assert的异常参数,其实就是在断言表达式后添加字符串信息,用来解释断言并更好的知道是哪里出了问题。

例如:

# defining the function definition
def divide(num1, num2):
#如果说num2是-1,判断为假,就执行引号后面的语句
   assert num2 > 0 , "Divisor cannot be zero"
   return num1/num2
# calling the divide function
a1 = divide(12,3)
# print the quotient
print(a1)
# this will give the assertion error
a2 = divide(12,0)
print(a2)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

即:当条件不满足时,就会抛出 AssertionError 异常

3.差别:
raise是条件为 true 正常执行
assert是条件为 true 正常执行(不执行括号里面的东西),条件为 false 触发异常(即执行括号里面的内容)

  1. 断言和异常

用一句话来概括断言的使用场景和与异常的区别:
检查先验条件使用断言,检查后验条件使用异常

相比于 assert 语句只能抛出 AssertionError ,使用异常可以抛出更细致的错误,方便上层代码针对不同错误执行不同的逻辑。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/559925
推荐阅读
相关标签
  

闽ICP备14008679号