美文网首页
Python调试

Python调试

作者: 酒深巷子Ya | 来源:发表于2018-06-04 09:27 被阅读55次
  • 项目开发过程中很难一次完全运行,总是会有各种各样的bug,修复这些bug需要各种调试手段。
调试技巧一: printf()函数。将可能出现问题的信息打印出来,简单粗暴,使用时需要大致知道问题出现在什么地方。例如:
def division(x, y):
    print('**********', y)# ********** 0
    return x / y
print(division(2, 0))

print()函数的不便之处就是用完之后要将其删除,不然控制台输出各种不必要的信息。

调试技巧二:断言assert。凡是可以用print()函数的都可以使用断言,不同之处是触发断言后会抛出一个AssertionError的错误。;例如:
def division(x, y):
    assert y != 0, 'y is zero'
    return x / y

print(division(2, 0)) #AssertionError: y is zero

断言在启动Python解释器时可以用-O参数来关闭assert:例如:python3 -o ****.py
断言的不便之处和print一样使用后也是要删除,不然会造成一些的不必要的代码

调试技巧三:logging()函数。和assert比,logging不会抛出错误,而且可以输出到文件。
import logging
logging.basicConfig(level = logging.INFO)#添加配置
def division(x, y):
    logging.info('********** y = ', y)
    return x / y

print(division(2, 0))

和print断言相比logging的好处,它允许你指定记录信息的级别,有debug,info,warning,error等几个级别,当配置信息指定level=INFO时,logging.debug就不起作用了。同样指定level=WARNING后,debug和info就不起作用了。这样就可以放心地输出不同级别的信息,也不用删除,最后统一控制输出哪个级别的信息。

调试技巧四:Python的调试器pdb。让程序以单步方式运行,可以随时查看运行状态。
import pdb
def division(x, y):
    pdb.set_trace()  # 运行到这里会自动暂停
    return x / y
print(division(2, 0))

pdb可以通过pdb.set_trace()来设置程序停留的地方,然后可以逐步调试代码:

-> import sys
(Pdb) c #继续下一步
/Users/apple/PycharmProjects/Project1/Test/SecondBook.py(317)division()
-> return x / y
(Pdb) p y #p 变量名查看变量
0
(Pdb) p x
2
(Pdb) q #q退出调试

好了到这大家就可以选用适合的方法进行调试了,如果大家有更好的方法欢迎一起讨论。
持续更新~🙈

相关文章

  • 参考资料:Python 的调试

    Python 代码调试技巧 我常用的 Python 调试工具 详细演示进入函数的 pdb s 调试 Python ...

  • python调试

    linux python调试技巧 Linux下Python基础调试 http://blog.163.com/liu...

  • HBuilder Android真机调试

    关于调试 难者不会,会者不难。对于调试,这句话尤其合适。无论是前端调试、Java调试、PHP调试、Python调试...

  • 节省时间并提高 Python 开发人员的技能工具:Python

    Python 调试器 Python 标准库提供了一个名为 pdb 的调试器。此调试器提供了调试所需的大多数功能,如...

  • Ansible 开发调试 之【pdb本地调试】

    Ansible是用Python编写的,用于调试本地代码执行的工具是Python调试器 **pdb**。这个工具允许...

  • Python 必需学会的调式方法

    没错就是pdb 调试,pdb 是 python 的一个内置模块,用于命令行来调试 Python 代码。或许你会说,...

  • python Debug宏定义

    前言 调试python时,常碰到打印信息需手动删除;且python没有宏定义.依据之前使用C的习惯,定义调试模式,...

  • python 调试

    使用 pdb 进行调试 pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功...

  • Python debug

    Python debug 如何调试 python 程序? print 这个方法不说了 pdb ipdb requi...

  • Python 调试冷知识

    对于 python 代码的调试我们通常都是使用 IDE 自带的调试功能。但是 IDE 提供的调试功能存在局限性,例...

网友评论

      本文标题:Python调试

      本文链接:https://www.haomeiwen.com/subject/tsifsftx.html