news 2026/5/26 8:01:15

分享几个我常用的 Python 调试技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
分享几个我常用的 Python 调试技巧

分享几个我常用的 Python 调试技巧

在日常 Python 开发中,调试占据了我们很大一部分时间。很多人遇到 Bug 第一反应就是加 print,但每次改代码、重新运行,效率很低。今天分享几个我实际项目中常用的调试技巧,希望能帮到你。

1. 善用 breakpoint() 代替 print

从 Python 3.7 开始,内置的 breakpoint() 函数可以直接启动 pdb 调试器。相比 print 大法,它的好处是:

  • 不需要预先知道问题在哪
  • 可以随时暂停观察变量
  • 支持继续执行、单步跟踪

用法很简单,在代码的任何位置插入:

def process_data(items): breakpoint() # 执行到这里会自动进入调试模式 for item in items: print(item)

运行后会自动进入 (Pdb) 交互模式,输入变量名查看当前值,输入 c 继续执行,输入 n 跳到下一行,输入 s 进入函数内部。比来回加 print 优雅太多了。

2. 使用 rich 让调试输出更清晰

标准 print 输出的复杂数据结构很难看。推荐安装 rich 库:

pip install rich

然后用它来格式化输出:

from rich import print from rich.pretty import pprint data = {"users": [{"name": "Alice", "scores": [85, 92, 88]}]} pprint(data, indent_guides=True)

rich 会对字典、列表做语法高亮和缩进对齐,一眼就能看出结构问题。配合 inspect() 函数,还能快速查看对象的属性和方法。

3. 用 traceback 模块定位异常来源

有时候异常信息不够详细,不知道具体是哪行代码出的问题。试试用 traceback 模块打印完整调用栈:

import traceback try: result = risky_function() except Exception: traceback.print_exc() # 打印完整的异常堆栈

更高级的用法是 format_exc(),可以把堆栈字符串保存到日志文件里,方便回头查看。

4. 小技巧:用 dir() 和 help() 快速查 API

调试时经常遇到「这个对象有哪些方法」的问题。与其去翻文档,不如直接在调试器里用:

dir(obj) # 返回对象所有属性和方法 help(obj.method) # 查看方法的详细文档

这两个内置函数在 breakpoint() 调试模式下特别好用,不用离开编辑器环境就能查清楚 API 细节。

5. 用 __repr__ 让自定义对象可直接调试

定义一个类时,实现 __repr__ 方法能让调试输出变得更友好:

class User: def __init__(self, name, age): self.name = name self.age = age def __repr__(self): return f"User(name={self.name!r}, age={self.age})" user = User("张三", 28) print(user) # 输出:User(name='张三', age=28)

这样在调试时看到对象就能直接了解它的状态,不用一个个去查属性值。

总结

以上就是我日常开发中经常用到的五个调试技巧。从断点调试到输出美化,从异常定位到对象展示,每个都能在实际工作中提升效率。如果你也有好用的调试方法,欢迎在评论区分享交流。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 7:58:54

热门AI论文工具榜单(2026 精选)

基于功能完整性、学术适配性、用户使用体验及技术稳定性,以下是当前主流AI论文写作工具的综合测评榜单,按推荐指数从高到低进行排序,并详细标注各工具的核心优势与适用场景。🏆 第一梯队:全流程学术解决方案&#xff0…

作者头像 李华
网站建设 2026/5/26 7:58:31

TVA在电子元器件领域的创新应用(4)

重磅预告:本专栏将独家连载系列丛书《智能体视觉技术与应用》部分精华内容,该书是世界首套系统阐述“因式智能体”视觉理论与实践的专著,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“…

作者头像 李华
网站建设 2026/5/26 7:53:00

DeepSeek-R1本地部署实战:Ollama+Q4_K_M+Chroma全链路指南

1. 项目概述:为什么我坚持在本地跑 DeepSeek-R1,而不是用 API?DeepSeek-R1 这个模型,最近在中文技术圈里讨论热度很高。它不是那种靠堆参数刷榜的“大力出奇迹”型选手,而是真正把推理链路、数学能力、代码生成和多步逻…

作者头像 李华
网站建设 2026/5/26 7:50:45

基于Micronaut与LangChain4j构建Java AI智能体:轻量级后端集成实践

1. 项目概述:为什么选择这个技术栈来构建AI智能体?最近在尝试将AI能力集成到后端服务里,发现了一个挺有意思的组合:用Micronaut做轻量级框架,搭配LangChain4j来处理AI链式调用,再用MCP(Model Co…

作者头像 李华