踩坑总结:assert的用法

assert 在我自己学习深度学习中经常会遇到,那么它到底有什么作用呢?

https://www.cnblogs.com/hezhiyao/p/7805278.html

一、python assert的作用:

根据Python 官方文档解释(https://docs.python.org/3/reference/simple_stmts.html#assert), “Assert statements are a convenient way to insert debugging assertions into a program”.

二、一般的用法是:

1
assert condition

用来让程序测试这个condition,如果condition为false,那么raise一个AssertionError出来。逻辑上等同于:

1
2
if not condition:
raise AssertionError()

比如如下的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>> assert 1==1
>>> assert 1==0
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
assert 1==0
AssertionError
>>> assert True
>>> assert False
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
assert False
AssertionError
>>> assert 3<2
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
assert 3<2
AssertionError

三、如何为assert断言语句添加异常参数

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

assert expression [, arguments]
assert 表达式 [, 参数]

比如如下的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> assert len(lists) >=5,'列表元素个数小于5'

Traceback (most recent call last):
File "D:/Data/Python/helloworld/helloworld.py", line 1, in <module>
assert 2>=5,'列表元素个数小于5'
AssertionError: 列表元素个数小于5

>>> assert 2==1,'2不等于1'

Traceback (most recent call last):
File "D:/Data/Python/helloworld/helloworld.py", line 1, in <module>
assert 2==1,'2不等于1'
AssertionError: 2不等于1

理解:在看代码的时候经常遇到,例如要判断是否输入了文件的路径,

此时,代码如下

1
assert path

即可判断,如果没有输入path将提示出错。

Contents
|