![146d8a1d92bf77aada1bf30ab2ad419b.png](https://i-blog.csdnimg.cn/blog_migrate/9813e3846ff099d63800e2d99d23530a.jpeg)
调试和分析在Python开发中发挥着重要作用。 调试器可帮助程序员分析完整的代码。 调试器设置断点,而剖析器运行我们的代码,并给我们执行时间的详细信息。 分析器将识别程序中的瓶颈。我们将了解pdb Python调试器,cProfile模块和timeit模块来计算Python代码的执行时间。
涉及内容:
- Python调试技术
- 错误处理(异常处理)
- 调试工具
- 调试基本程序崩溃
- 分析和计时程序
- 使程序运行得更快
debugging
调试是解决代码中出现阻止软件正常运行问题的过程。
Python调试器设置条件断点并可一次调试一行源代码。我们将使用Python标准库中的pdb模块调试我们的Python脚本。
参考资料:887934385 加群免费获取
Python调试技术
- print()语句。
- logging:这类似于print语句,但具有更多上下文信息。
- pdb调试器:常用的调试技术。在解释器和程序内从命令行使用pdb。
- IDE调试器:IDE具有集成调试器。它允许开发人员执行他们的代码,然后开发人员可以在程序执行时进行检查。比如windide中的调试菜单:
![dc440a8aabbd9c276d3327b5a4a6f41c.png](https://i-blog.csdnimg.cn/blog_migrate/a770450e536632cd3a02aa96a94b000f.jpeg)
class Student:
def __init__(self, std):
self.count = std
def print_std(self):
for i in range(self.count):
print(i)
return
if __name__ == '__main__':
Student(5).print_std()
以此脚本为例学习Python调试,我们将看到如何详细启动调试器。
- 交互式执行
$ python3
Python 3.6.7 |Anaconda, Inc.| (default, Oct 23 2018, 19:16:44)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pdb_example
>>> import pdb
>>> pdb.run('pdb_example.Student(5).print_std()')
> <string>(1)<module>()
(Pdb)
EOF b cl cont disable exit interact list next quit retval source unalias up
a break clear continue display h j ll p r run step undisplay w
alias bt commands d down help jump longlist pp restart rv tbreak unt whatis
args c condition debug enable ignore l n q return s u until where
(Pdb) continue
0
1
2
3
4
要继续调试,请在 ( Pdb )提示符后输入continue,然后按Enter键。如果你想知道我们可以在这里使用的选项,那么在 ( Pdb )提示后按两次Tab键。注意windows下按键可能会无效。
- 交互式加载pdb模块
$ python3 -m pdb pdb_example.py
> /home/andrew/code/meil/code/Mastering-Python-Scripting-for-System-Administrators-/Chapter02/pdb_example.py(1)<module>()
-> class Student:
(Pdb) continue
0
1
2
3
4
The program finished and will be restarted
- 脚本中开启调试
执行:
$ python3 pdb_example.py
> /home/andrew/code/meil/code/Mastering-Python-Scripting-for-System-Administrators-/Chapter02/pdb_example.py(10)print_std()
-> print(i)
(Pdb) continue
0
> /home/andrew/code/meil/code/Mastering-Python-Scripting-for-System-Administrators-/Chapter02/pdb_example.py(9)print_std()
-> pdb.set_trace()
(Pdb) continue
1
> /home/andrew/code/meil/code/Mastering-Python-Scripting-for-System-Administrators-/Chapter02/pdb_example.py(10)print_std()
-> print(i)
(Pdb) continue
2
...
以上便是本章技术讲解,还有什么问题没解决或者不定时发视频资料887934385