python调试方法

python调试方法


Print

最简单 print()
只是影响代码美观,而且需要在后面删掉,比较麻烦

断言

凡是用print来辅助查看的地方,都可以用断言(assert)来替代:

# err.py
def foo(s):
    n = int(s)
    assert n != 0, 'n is zero!'
    return 10 / n

def main():
    foo('0')

可以通过 -0 参数来关闭assert
$ python -O err.py
关闭以后相当于 pass

logging

# err.py
import logging

s = '0'
n = int(s)
logging.info('n = %d' % n)
print 10 / n
import logging
logging.basicConfig(level=logging.INFO)

另外 Logging Level分为 Critical , Error , Warning , Debug , Info , Notset
越右边→_→信息越多

pdb调试

运用pdb命令,用单步调试等

使用gdb或者ipdb工具十分方便

如果只想看结论的话,我们的最佳实践是在需要调试的代码中插入”import ipdb;ipdb.set_trace()”或者”import pudb;pudb.set_trace”即可
(摘自 知乎)

# err.py
import pdb

s = '0'
n = int(s)
pdb.set_trace() # 运行到这里会自动暂停
print 10 / n
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值