摘要:但是在调试之后,我们还需要手动删除语句,比较麻烦。关闭后,语句就不再生效。的好处有很多,一个是可以制定输出特定级别的信息。我们可以用对进行简单的配置。小于该的都会被忽略。但是在处理很长的代码的时候,显得效率低下。
我们在写代码的时候,往往会有一大堆错误。我们该如何调试呢?
用print语句打印我们可以用print语句打印我们想要的内容,然后在输出中查看。
print "hah"
但是在调试之后,我们还需要手动删除print语句,比较麻烦。
assert前面用print的地方,我们可以使用assert语句来替代。
例如:
def foo(s): s = int(s) assert s != 0, "s is Zero" return 10.0 / s foo("0")
assert语句后紧跟着一句判断语句,再更着错误信息。
如果判断语句不符合,则抛出一个AssertionError.例如:
Traceback (most recent call last): File "/Users/W/Code/Python/Demo/AssertDemo.py", line 7, infoo("0") File "/Users/W/Code/Python/Demo/AssertDemo.py", line 3, in foo assert s != 0, "s is Zero" AssertionError: s is Zero
我们可以在执行的时候带上参数-o统一关闭assert。关闭后,assert语句就不再生效。
logging可以将print语句替换成logging。logging不会像assert那样抛出错误信息。
logging的好处有很多,一个是可以制定输出特定级别的信息。
Level: CRITICAL Numeric value: 50 Level: ERROR Numeric value: 40 Level: WARNING Numeric value: 30 Level: INFO Numeric value: 20 Level: DEBUG Numeric value: 10 Level: NOTSET Numeric value: 0
我们可以用
logging.basicConfig(level=logging.DEBUG)
对logging进行简单的配置。小于该level的warning都会被忽略。
另外我们也可以对logging输出的位置进行配置,例如是输出到console还是到某一个debug文件。
关于更多logging的配置,可以阅读:https://segmentfault.com/a/11...。
pdb的启动方式为
python -m pdb test.py
pdb常用的命令
n: 即next,用于执行下一步 l: 应该是list,查看下面要执行的代码 p 变量名: p应该是parameter的首字母,查看某一个变量的值 q: quit, 退出程序
pdb可以控制python的一步一步执行,理论上是万能的debugger。但是在处理很长的代码的时候,显得效率低下。
分析一下我们的需求,我们其实是需要在一些关键的点设置一下断点,让我们看一下执行的结果即可,而不是像前面那样查看每一步。
接下来我们就来看一下pdb.set_trace().
我们只需要在让程序暂停的地方写一行代码:
pdb.set_trace()
Python编辑器在遇到pdb.set_trace()时候,程序就会暂停,我们就可以用上面提到的pdb命令来查看各个参数的值了。
当然,很多现代化的IDE比如Pycharm等都提供了很多方便的可视化的debug工具,可以很方便的上手。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38324.html
摘要:贡献者飞龙版本最近总是有人问我,把这些资料看完一遍要用多长时间,如果你一本书一本书看的话,的确要用很长时间。为了方便大家,我就把每本书的章节拆开,再按照知识点合并,手动整理了这个知识树。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 贡献者:飞龙版...
摘要:研究人员和机器学习的作者对于数学和面向数据的人来说,非常容易使用。这对于机器学习和领域的工作是非常重要的。高级脚本语言非常适合人工智能和机器学习,因为我们可以快速移动并重试。 摘要: 为什么Python会在这股深度学习浪潮中成为编程语言的头牌?听听大牛如何解释吧! showImg(https://segmentfault.com/img/bV59KD?w=780&h=405); 1.P...
阅读 2055·2021-10-08 10:21
阅读 2453·2021-09-29 09:34
阅读 3467·2021-09-22 15:51
阅读 4824·2021-09-22 15:46
阅读 2299·2021-08-09 13:42
阅读 3389·2019-08-30 15:52
阅读 2702·2019-08-29 17:13
阅读 1519·2019-08-29 11:30