coldear
V2EX  ›  问与答

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

  •  
  •   coldear · Jul 22, 2012 · 19100 views
    This topic created in 5219 days ago, the information mentioned may be changed or developed.
    18 replies  •  1970-01-01 08:00:00 +08:00
    armoni
    armoni
    Jul 22, 2012
    1
    logger.
    coldear
    coldear
    OP
    Jul 22, 2012
    2
    @armonl 大对象怎么办?
    saharabear
    saharabear
    Jul 22, 2012
    3
    基本上只用logger和print,不太明白 大对象有什么问题。把方法抽出来写unittest就容易多了。
    coldear
    coldear
    OP
    Jul 22, 2012
    4
    @saharabear 觉得大对象要print的量比较多,每次都这样的话比较麻烦
    saharabear
    saharabear
    Jul 22, 2012
    5
    @coldear 不太明白大对象的含义,能用代码说明一下吗?
    coldear
    coldear
    OP
    Jul 22, 2012
    6
    假设一个类有很多字段,在不同的地方要查看这些字段
    saharabear
    saharabear
    Jul 22, 2012❤️1
    7
    @coldear 你是说字段需要设置一定的约束?那就写在对象的__getitem__和__set..里面,设置好约束条件,针对这个对象的这两个方法写好单元测试,如果对于set和get的数据不符合约束,就自动抛出异常。这样就不太需要关心里面的字段值了吧?(不知道我的理解对不对)
    coldear
    coldear
    OP
    Jul 22, 2012
    8
    @saharabear 可能我的想法太受vs影响了,写代码的过程中经常使用一些debugger的功能
    比如断点查看对象等
    demon386
    demon386
    Jul 22, 2012
    9
    基本没啥调试。。。
    adieu
    adieu
    Jul 22, 2012❤️1
    10
    sublime text 2 更加适合当作编辑器来用,而不是IDE。可以直接在terminal下面运行你正在编写的程序,然后参考这篇 http://aymanh.com/python-debugging-techniques 里面的方法进行调试。
    iiduce
    iiduce
    Jul 22, 2012❤️1
    11
    调试代码还是用 pycharm吧
    coldear
    coldear
    OP
    Jul 22, 2012
    12
    @adieu 多谢
    @iiduce 多谢,正在看pycharm
    chloerei
    chloerei
    Jul 22, 2012❤️1
    13
    unit test
    chairo
    chairo
    Jul 22, 2012❤️1
    14
    Python的debugger可以用
    import pdb
    pdb.set_trace()
    armoni
    armoni
    Jul 22, 2012❤️1
    15
    我比较习惯控制一个函数里代码行数,这样出错了,根据log很容易定位
    neildd
    neildd
    Jul 23, 2012❤️1
    16
    我写python调试无非3种
    1.单个变量print
    2.list、dict等用pprint
    3.逻辑调试用pdb.set_trace()
    ipconfiger
    ipconfiger
    Jul 23, 2012❤️1
    17
    看来LZ深受OOP的流毒。你一开始弄那么大个架子,又不预先考虑测试的问题,自然头大。先从小处入手,把功能分解成容易写容易测试的小模块,每个都好测试,然后在再组装起来,每一个小模块都是正确的,组装起来的成品就不容易出问题
    coldear
    coldear
    OP
    Jul 23, 2012
    18
    @chairo @neildd 多谢,看来要多用pdb.set_trace()和pprint.
    @chloerei @armoni @ipconfiger 看来要先考虑测试,把代码重新组织一下,多谢了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1928 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 16:33 · PVG 00:33 · LAX 08:33 · JFK 11:33
    ♥ Do have faith in what you're doing.