如何高效地调试 py 程序?

2022-10-08 10:03:08 +08:00
 JYLu
实现一些数值计算的算法,主要的精力都集中在把算法中的数学语言转化成编程代码了。代码质量就不高。常会出现很多小错误。py 没有编译,找错只能靠不断运行发现,但是这样一次只能改一个 bug 。每次调试都要比写下程序本身花数倍的时间,对精力是极大的损耗。
还有除了使用 print()语句,有没有什么好的调试技巧,可以使得调试更高效?
3241 次点击
所在节点    程序员
31 条回复
arischow
2022-10-08 11:30:04 +08:00
@JYLu 单元测试或者 PyCharm debug mode
clino
2022-10-08 11:37:38 +08:00
说“py 没有编译”是错的,python 是编译成字节码以后运行的。

建议多写 test case 利于做回归测试,多加 assert 来针对边界情况进行低成本地预防。
Blancmange
2022-10-08 12:08:56 +08:00
wuwuta170
2022-10-08 12:12:09 +08:00
print 大法好 如果 是服务类型的调试 就 logging 大法,
wuwuta170
2022-10-08 12:12:35 +08:00
90%的 bug 都能通过 print 大法和 Logging 大法搞定
fakepoet
2022-10-08 12:50:36 +08:00
看到“代码质量就不高”这句,联想到了之前项目中做的一些“临时逻辑”,写的时候不注重抽象和便于测试,最后带来了很多隐藏 bug 。debug 的具体手段我觉得不太重要,print 和 logging 就够用了,建议把代码组织好,整洁一些,方便阅读也方便测试和 debug 。
dantangfan
2022-10-08 13:43:21 +08:00
@yuelang85 没问题的,本来就是一直内部使用的线上诊断工具开源出来的。
fzls
2022-10-08 16:20:39 +08:00
@JYLu 用上一些 lint 库,可以避免很多容易出现的问题
fzls
2022-10-08 16:22:25 +08:00
mogging
2022-10-08 17:29:31 +08:00
@yuelang85 vscode ssh + pylance 两个插件在 Linux 服务器上做开发调试丝般顺滑
JYLu
2022-10-08 18:24:14 +08:00
@fzls, 谢谢.
收藏了.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/885154

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX