python 调试

来源:互联网 发布:男人穿衣打扮的软件 编辑:程序博客网 时间:2024/05/17 05:15

简单粗暴的 print,直接将错误打印出来,但是调试好之后需要删掉。。

然后稍微委婉一点的 assert,将程序加上断言,进行判断,

def foo(s):    n = int(s)    assert n != 0, 'n is zero!'    return 10 / ndef main():    foo('0')

assert的意思是,表达式n != 0应该是True,否则,后面的代码就会出错。

如果断言失败,assert语句本身就会抛出AssertionError

程序中如果到处充斥着assert,和print相比也好不到哪去。不过,启动Python解释器时可以用-O参数来关闭assert

python -0 xxx.py 来关闭assert,把所有的assert当成是pass来看

再次是logging

它允许你指定记录信息的级别,有debuginfowarningerror等几个级别,当我们指定level=INFO时,logging.debug就不起作用了。同理,指定level=WARNING后,debuginfo就不起作用了。这样一来,你可以放心地输出不同级别的信息,也不用删除,最后统一控制输出哪个级别的信息。

logging的另一个好处是通过简单的配置,一条语句可以同时输出到不同的地方,比如console和文件。

pdb   python调试器

python -m pdb xxx.py

输入n 单步调试

输入命令q结束调试,退出程序

太烦了,,,,还得是logging

0 0
原创粉丝点击