sublime text 2 写python的同学,你们是怎么调试代码的?

2012-07-22 12:39:51 +08:00
 coldear
18192 次点击
所在节点    问与答
18 条回复
armoni
2012-07-22 12:45:48 +08:00
logger.
coldear
2012-07-22 12:47:20 +08:00
@armonl 大对象怎么办?
saharabear
2012-07-22 12:48:23 +08:00
基本上只用logger和print,不太明白 大对象有什么问题。把方法抽出来写unittest就容易多了。
coldear
2012-07-22 12:51:59 +08:00
@saharabear 觉得大对象要print的量比较多,每次都这样的话比较麻烦
saharabear
2012-07-22 12:53:34 +08:00
@coldear 不太明白大对象的含义,能用代码说明一下吗?
coldear
2012-07-22 12:55:51 +08:00
假设一个类有很多字段,在不同的地方要查看这些字段
saharabear
2012-07-22 12:58:20 +08:00
@coldear 你是说字段需要设置一定的约束?那就写在对象的__getitem__和__set..里面,设置好约束条件,针对这个对象的这两个方法写好单元测试,如果对于set和get的数据不符合约束,就自动抛出异常。这样就不太需要关心里面的字段值了吧?(不知道我的理解对不对)
coldear
2012-07-22 13:03:57 +08:00
@saharabear 可能我的想法太受vs影响了,写代码的过程中经常使用一些debugger的功能
比如断点查看对象等
demon386
2012-07-22 13:14:48 +08:00
基本没啥调试。。。
adieu
2012-07-22 13:28:55 +08:00
sublime text 2 更加适合当作编辑器来用,而不是IDE。可以直接在terminal下面运行你正在编写的程序,然后参考这篇 http://aymanh.com/python-debugging-techniques 里面的方法进行调试。
iiduce
2012-07-22 13:31:33 +08:00
调试代码还是用 pycharm吧
coldear
2012-07-22 13:38:21 +08:00
@adieu 多谢
@iiduce 多谢,正在看pycharm
chloerei
2012-07-22 13:46:00 +08:00
unit test
chairo
2012-07-22 14:02:09 +08:00
Python的debugger可以用
import pdb
pdb.set_trace()
armoni
2012-07-22 15:53:50 +08:00
我比较习惯控制一个函数里代码行数,这样出错了,根据log很容易定位
neildd
2012-07-23 09:14:29 +08:00
我写python调试无非3种
1.单个变量print
2.list、dict等用pprint
3.逻辑调试用pdb.set_trace()
ipconfiger
2012-07-23 09:23:41 +08:00
看来LZ深受OOP的流毒。你一开始弄那么大个架子,又不预先考虑测试的问题,自然头大。先从小处入手,把功能分解成容易写容易测试的小模块,每个都好测试,然后在再组装起来,每一个小模块都是正确的,组装起来的成品就不容易出问题
coldear
2012-07-23 13:34:36 +08:00
@chairo @neildd 多谢,看来要多用pdb.set_trace()和pprint.
@chloerei @armoni @ipconfiger 看来要先考虑测试,把代码重新组织一下,多谢了

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

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

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

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

© 2021 V2EX