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

你可能感兴趣的:(环境工具,python)