一文看懂Python(七)-----断言

今天在看U-net的PyTorch实现版本的时候,发现里面用到了断言的相关语法,在此记录一下!

一、断言的语法格式

assert <断言判断条件> [,"错误提示消息"]

当表达式为真时,程序继续往下执行;

当表达式为假时,抛出AssertionError错误,并将‘参数’输出。

二、使用场景

断言是为了告诉开发人员程序中发生了不可恢复的错误,对于可以预料的错误(如未找到相关文件),用户可以予以纠正或重试,断言并不是为此而生的。
如果程序没有bug,那么这些断言条件永远也不会触发,但如果违反了断言条件,程序就会崩溃并报告断言错误,告诉开发人员究竟违反了哪个“不可能”的情况,这样可以更轻松的追踪和修复程序中的bug。python中的断言语句是一种调试辅助功能,不是用来处理运行时错误的机制,使用断言的目的是让开发人员更快速的找到可能导致bug的根本原因,除非程序中存在bug,否则绝不会抛出断言错误。

三、案例

  • 代码
def fun1(s):
    n = int(s)
    assert n!= 0, 'n is zero'
    return 10 / n
fun1('0')
  • 运行结果
AssertionError                            Traceback (most recent call last)
<ipython-input-6-c41609152707> in <module>
      3     assert n!= 0, 'n is zero'
      4     return 10 / n
----> 5 fun1('0')

<ipython-input-6-c41609152707> in fun1(s)
      1 def fun1(s):
      2     n = int(s)
----> 3     assert n!= 0, 'n is zero'
      4     return 10 / n
      5 fun1('0')

AssertionError: n is zero

参考文献

https://zhuanlan.zhihu.com/p/187589076

猜你喜欢

转载自blog.csdn.net/dongjinkun/article/details/114006994