assert断言语句用来声明某个条件是真的,其作用是测试一个条件(condition)是否成立,如果不成立,则抛出异常。


assert一般用法:

assert condition

如果condition为false,就raise一个AssertionError出来。逻辑上等同于:
if not condition:
    raise AssertionError()



另一种使用方法:

assert condition,expression


如果condition为false,就raise一个描述为 expression 的AssertionError出来。逻辑上等同于:
if not condition:
        raise AssertionError(expression)



assert使用示例:

# -*- coding: utf-8 -*-

v1 = 1
v2 = 2

assert (v1 < v2)
# assert (v1 > v2)
assert (v1 > v2),'{0} is not bigger than {1}'.format(v1,v2)

以上代码抛出异常:

Traceback (most recent call last):
  File "xxx", line 8, in <module>
    assert (v1 > v2),'{0} is not bigger than {1}'.format(v1,v2)
AssertionError: 1 is not bigger than 2

断言跟异常的区别:

断言是用来检查非法情况而不是错误情况的,用来帮开发者快速定位问题的位置。
异常处理用于对程序发生异常情况的处理,增强程序的健壮性和容错性。


对一个函数而言,一般情况下,断言用于检查函数输入的合法性,要求输入满足一定的条件才能继续执行;
在函数执行过程中出现的异常情况使用异常来捕获。


posted on 2018-01-25 21:03  未雨愁眸  阅读(337)  评论(0编辑  收藏  举报