1. 使用assert / print
eg:
# err.py
def foo(s):
n = int(s)
assert n != 0, 'n is zero!'
return 10 / n
def main():
foo('0')
执行方式: python err.py
如执行时使用 -0 参数:python -0 err.py,则关闭assert,把assert当成pass使用。
2. 日志打印:logging
等级有:debug, info, warning, error。等级逐渐提高,如设置level=INFO,则不会显示debug信息,会显示warning和error的
eg:
import logging
logging.basicConfig(level=logging.INFO)
3. 使用pdb
pdb是针对python的,就好像gdb对于c一样
eg:
python -m pdb err.py
调试过程中几个命令 对应操作:
1 : 显示代码
n : 单步执行下一步
p xxx : 显示变量xxx的值,eg: p n(显示n的值)
4. 设置断点 pdb.set_trace()
在代码中设置断点
eg:
import pdb
s = '0'
n = int(s)
pdb.set_trace() # 运行到这里会自动暂停
print 10 / n