当前位置: 首页 > news >正文

分享几个我常用的 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_guidesTrue)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 fUser(name{self.name!r}, age{self.age}) user User(张三, 28) print(user) # 输出User(name张三, age28)这样在调试时看到对象就能直接了解它的状态不用一个个去查属性值。总结以上就是我日常开发中经常用到的五个调试技巧。从断点调试到输出美化从异常定位到对象展示每个都能在实际工作中提升效率。如果你也有好用的调试方法欢迎在评论区分享交流。
http://www.zskr.cn/news/1388612.html

相关文章:

  • 避坑指南:在Seurat工作流中正确使用SCTransform与Harmony的完整流程
  • 用STM32F103和DRV8711驱动步进电机:从原理图到代码的完整避坑指南
  • ComfyUI Manager终极指南:轻松管理你的AI工作流扩展库
  • 如何用ZenTimings深度监控AMD Ryzen内存时序:5分钟快速入门终极指南
  • 终极指南:30秒掌握猫抓浏览器资源嗅探扩展,轻松下载网页视频
  • PyCharm/VS Code里配置d2l环境避坑指南:虚拟环境、包版本与权限问题一站式解决
  • OpenSpeedy游戏加速引擎深度集成实战指南
  • ARM PMU架构与性能监控事件详解
  • 三层内存治理架构:从核心层到私有层的精细化内存管理实践
  • 如何高效使用开源手机号码定位工具:专业实战指南
  • 5.25学习python和c语言基础
  • QLoRA微调Llama 2实战:消费级显卡跑通7B大模型
  • 别再让需求变更毁掉项目!维普三大解法,让交付效率翻倍
  • 基于热力学模型与预测控制的水床节能系统设计与实践
  • 用PCB设计思维改造万用板:低成本实现规整电路原型的完整指南
  • 红外液位传感器开关电路设计:从原理到实践的全流程指南
  • Charles 基础使用教程
  • 2026年5月主流PPT生成Skill测评排名:选对工具,效率翻倍
  • 深度强化学习在机械控制中的架构设计与优化
  • 告别卡顿!ESP32-S3实战:用Mjpg-streamer+双线程队列,在4.3寸屏上实现22帧流畅视频流
  • 中华女子学院考研辅导班靠谱推荐:高性价比与良好口碑实力选择 - michalwang
  • 北京中医药大学考研辅导班靠谱推荐:高性价比与良好口碑实力选择 - michalwang
  • AI智能体融入组织:从角色定义到人机协作的4个关键问题
  • 基于大语言模型的命令行AI对话伙伴开发实践
  • 从GoJS到Antv G6:一个前端老鸟的图可视化引擎选型心路与迁移踩坑实录
  • 金融风控建模实战:如何用机器学习预测房贷违约并规避信息泄漏
  • Transformer核心模块逐行拆解:从QKV矩阵到注意力热力图的实操指南
  • 新手也能搞定的STM32F103ZET6小车:从超声波避障到红外循迹,保姆级代码分享
  • 不止于测距:用STM32和HC-SR04做个简易防撞雷达(OLED显示+蜂鸣器报警)
  • 北京工商大学考研辅导班靠谱推荐:高性价比与良好口碑实力选择 - michalwang