Python的两种debug方法

print大法固然好,但是在print大法不work的时候还有其他更炫酷的方法。那就是在代码里内置assert。在代码中内置assert语句可以减少你的debug范围。另一种方法就是在debug时使用pysnooper这个包。pysnooper的好谁用谁知道。

assert

## assert的异常参数,其实就是在断言表达式后添加字符串信息,
用来解释断言并更好的知道是哪里出了问题。格式如下:
assert expression [, arguments]
assert 表达式 [, 参数]
lists = ['a','b','c']
assert lists[0] == 'a', '列表的第一个元素不为"a"'
assert len(lists) >=5, '列表元素个数小于5'

返回的结果如下。如果不满足表达式,则会raise后面的arguments信息。
在这里插入图片描述

pysnooper

python还有一种debug方法就是使用pysnooper这个包。这个包已经封装地很好了。

引自机器之心

一般情况下,想要知道哪一行代码在运行、哪一行不运行、本地变量的值是多少时,大部分人会使用 print 函数,在关键部分打印某个或某组变量的值、形状、类型等信息。
而 PySnooper 让你能快速地获得这些信息,且相比之下它不需要细致地写 print 函数,只需要向感兴趣的函数增加一个装饰器就行了。我们会得到该函数的详细 log,包含哪行代码能运行、什么时候运行以及本地变量变化的确切时间。

import pysnooper

@pysnooper.snoop()
def multiple(num):
    count = 1
    for i in range(1,num+1):
        count *= i
        
    return count

multiple(5)

你只需要在函数的前面写上@pysnooper.snoop()就行了,然后它就会打印出函数运行过程中的所有信息,就是这么简单粗暴。
以下是输出结果:
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章