Python调试技巧:使用assert和pysnooper包提升代码调试效率
打印方法很好,但是当打印方法不起作用时,还有其他更酷的方法。也就是将assert构建到代码中。将断言语句构建到代码中可以缩小调试范围。另一种方法是在调试时使用 pysnooper 包。用过pysnooper的人都知道它有多好。

断言
## assert的异常参数,其实就是在断言表达式后添加字符串信息,
用来解释断言并更好的知道是哪里出了问题。格式如下:
assert expression [, arguments]
assert 表达式 [, 参数]
lists = ['a','b','c']
assert lists[0] == 'a', '列表的第一个元素不为"a"'
assert len(lists) >=5, '列表元素个数小于5'
返回结果如下。如果表达式不满足,将提出以下参数。
窥探者
python 中的另一种调试方法是使用 pysnooper 包。这个包已经包装得很好了。
引自
一般情况下,当你想知道哪行代码正在运行、哪行没有运行以及局部变量的值是什么时,大多数人会使用 print 函数来打印 a 的值、形状和类型关键部分中的某些变量或变量组。和其他信息。
PySnooper可以让你快速获取这些信息,相比之下,它不需要编写详细的打印函数,你只需要在感兴趣的函数中添加一个装饰器即可。我们将获得该函数的详细日志,包括哪些代码行可以运行、何时运行以及局部变量更改的确切时间。
import pysnooper
@pysnooper.snoop()
def multiple(num):
count = 1
for i in range(1,num+1):
count *= i
return count
multiple(5)
只需要在函数前面写上@pysnooper.snoop(),它就会打印出函数运行过程中的所有信息。就是这么简单粗暴。
这是输出: