Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
pd python_python调用api接口获取数据,希望能够帮助你!!!。
诚然,借助pycharm打断点调试代码确实很简单,很方便,也很明了,但是在实际项目开发中,经常会遇到比如在linux上调试一段代码,没有pycharm等工具支撑的时候,很多人可能会考虑在代码中打印信息来辅助定位,但是如果代码挺多,变量挺多的时候,定位起来就相当的麻烦,所以作为一个合格的python开发者,pdb调试的方法还是要掌握的
下面在linux系统以如下一段代码为例,详细演示如何利用pdb调试,首先需要导入pdb,然后在想调试的位置加上pdb.set_trace(),当程序执行的时候就会从此处进入调试位置,如下就从开始直接进行调试
import pdb def get_sum(num): sum=0 for i in range(num): sum+=i return sum if __name__=="__main__": pdb.set_trace() num=5 sum=get_sum(num) print(sum)
(1)在命令行通过python demo.py执行,可以看到此处有个箭头执向赋值语句,表示即将执行此条语句,即箭头指向的位置尚未执行
[root@redrose2100 opt]# python3 demo.py > /opt/demo.py(13)<module>() -> num=5 (Pdb)
(2)输入小写字母 l 可以查看代码上下文 list:
(Pdb) l 8 return sum 9 10 11 if __name__=="__main__": 12 pdb.set_trace() 13 -> num=5 14 sum=get_sum(num) 15 print(sum) [EOF] (Pdb)
(3)通过 p xxx 可以打印xxx变量,查看xxx变量当前的值,如下确实验证了num尚未赋值
(Pdb) p num *** NameError: name 'num' is not defined (Pdb)
(4)输入 n 执行下一步(next)
(Pdb) n > /opt/demo.py(14)<module>() -> sum=get_sum(num) (Pdb) p num 5 (Pdb)
(5)输入 s 进入到调用函数里面 step,注意,此时如果输入n,则不会进入函数调用,直接将函数调用这一行执行完成,使用s可以进入到函数里面继续看
(Pdb) s --Call-- > /opt/demo.py(3)get_sum() -> def get_sum(num): (Pdb)
(6)此时可以不断的输入n或者p xxx 来调试查看变量
-> def get_sum(num): (Pdb) n > /opt/demo.py(4)get_sum() -> sum=0 (Pdb) n > /opt/demo.py(6)get_sum() -> for i in range(num): (Pdb) n > /opt/demo.py(7)get_sum() -> sum+=i (Pdb) n > /opt/demo.py(6)get_sum() -> for i in range(num): (Pdb) p sum 0 (Pdb) n > /opt/demo.py(7)get_sum() -> sum+=i (Pdb) n > /opt/demo.py(6)get_sum() -> for i in range(num): (Pdb) n > /opt/demo.py(7)get_sum() -> sum+=i (Pdb) n > /opt/demo.py(6)get_sum() -> for i in range(num): (Pdb) p sum 3 (Pdb) n > /opt/demo.py(7)get_sum() -> sum+=i (Pdb) n > /opt/demo.py(6)get_sum() -> for i in range(num): (Pdb) n > /opt/demo.py(7)get_sum() -> sum+=i (Pdb) p sum 6 (Pdb) p i 4 (Pdb)
(7)假如现在感觉这个函数已经调试的差不多了,但是并没有执行完,可以输入
r 回到函数调用完成的位置
(Pdb) r --Return-- > /opt/demo.py(8)get_sum()->10 -> return sum (Pdb) p sum 10 (Pdb)
(8)假如这个时候感觉已经调试完成了,想结束了,可以直接输入 c,即可结束调试
(Pdb) c 10 [root@redrose2100 opt]#
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
下一篇
已是最新文章