做开发总是离不开调式,这是一个很重要的能力。
利用print() 打印的方式调式
很粗暴的打印一些对象值,但是有一个很大问题就是将来还得删除它,这样会很麻烦,也很恶心,如果是大范围调式,哪里都是print打印,将会十分恶心,单文件打印打印倒无所谓,事后不需要就立马删除,在这种情况下还是比较方便简单粗暴的。
利用assert断言方式进行处理
预防一些预见性的错误的,并抛出一个自己定义的错误信息。比print好一点的是k而已在运行py文件期间,通过设置参数进行关闭断言。
- 关闭断言
```python
python -O err.py
```
```python
#coding=UTF8
a = input('输入一个整数:') assert int(a) != 0, 'a 不可以为0' # 断言的一些小作用,表达式int(a) != 0为flase就会触发断言 print (10/int(a))
### logging(很实用的日志观察工具)
> 这将是以后调式重点接触的东西,它可以将日志输出到屏幕、文件、邮件、服务器、内存buffer、流。
我们可以自定义的去配置他。极大程度的帮我们辅助收集了错误信息。
- 简单用用(后续继续深入补充)
```python
import logging
'''默认情况下,logging日志级别是warning
级别等级如下:
error > warning > info > debug
也就是说,默认情况下debug和info是不会打印的
'''
logging.debug ('debug msg')
logging.info ('info msg')
logging.error ('error msg')
logging.warning ('warning msg')
'''
运行结果:
ERROR:root:error msg
WARNING:root:warning msg
'''
# 我们可以去配置一些logging的一些设置,去改变它的级别
# 也就是侧面反映了我们可以自己定义一些logging模块,适应不同因素下的日志输入
logging.basicConfig(level=logging.INFO) # 设置日志级别
pdb调式 (断点调式、单步调式)
这个在命令行调式很有威力
- 启动pdb调式
比如:err.py文件 运行命令:python -m pdb err.py 将进入pdb模式
调式命令(在pdb模式下直接输入后回车就行了)
l
查看代码
n
单步继续执行下一段代码
p 对象名
查看对象
q
退出pdb调式
pdb.set_trace()
利用pdb模块提供的方法,在代码里设置断点,这样程序运行到这里就会停住,而不像命令一样只能一行行从头到尾单步。然后配合调式命令就可以了。
#coding=UTF8 import pdb a = input('输入一个整数:') pdb.set_trace() # 相当于设置一个断点
IDE
- PyCharm
> 目前算是比较好用的工具