Python 调试完全指南:print vs logging vs pdb vs breakpoint

小飞兽 Python 4 次阅读 2026-07-24

Bug是程序员最忠实的伙伴,调试技能直接决定解决问题的速度。从最快到最强大,讲解四种调试方式的正确用法。

print:最快但不推荐

print()是最快的临时调试方式,但容易忘记删、污染输出。可以用DEBUG环境变量控制:if os.getenv('DEBUG')=='1': print(...)。

logging:生产环境必备

logging模块支持DEBUG/INFO/WARNING/ERROR/CRITICAL五个级别。basicConfig()配置格式和输出目标。logger.debug()默认不输出,不影响性能。

pdb:命令行调试

pdb.set_trace()在代码中设置断点。Python 3.7+推荐breakpoint(),等价于import pdb; pdb.set_trace()。常用命令:n单步,s进入函数,c继续,p打印变量,w查看调用栈。

IDE 调试

VS Code配置.vscode/launch.json后按F5开始调试,支持断点、条件断点、监视变量、调用栈。PyCharm右键Debug支持远程调试和多进程调试。

运行效果

pytest tests/ -v详细查看测试结果。pdb中p variable打印变量值,w显示调用栈位置。

常见问题

Q1: print会影响性能吗?print有I/O开销,高频调用会拖慢程序,生产环境用logger.debug()。

Q2: breakpoint()设条件断点?在IDE断点面板设置条件(如x > 10),pdb用b MyClass.method, condition x > 10。

延伸阅读

  • Python异常处理
  • Python pytest
  • Python单元测试

---

作者:小马 | 绍大技术网 shaoda.net