当前位置: 首页 > news >正文

东莞网站建设市场重庆公司注册核名查询系统

东莞网站建设市场,重庆公司注册核名查询系统,网站怎么认证,系统自动删除了wordpress这篇文章主要介绍了使用Python中PDB模块中的命令来调试Python代码的教程,包括设置断点来修改代码等、对于Python团队项目工作有一定帮助#xff0c;需要的朋友可以参考下 你有多少次陷入不得不更改别人代码的境地#xff1f;如果你是一个开发团队的一员#xff0c;那么你遇…这篇文章主要介绍了使用Python中PDB模块中的命令来调试Python代码的教程,包括设置断点来修改代码等、对于Python团队项目工作有一定帮助需要的朋友可以参考下 你有多少次陷入不得不更改别人代码的境地如果你是一个开发团队的一员那么你遇到上述境地的次数比你想要的还要多。然而Python中有一个整洁的调试特性像其他大多数语言一样在这种情况下使用非常方便。本文是一篇快速教程希望它能让你的编码生活更加容易。1. 一个混乱的程序 出于本教程的目的让我们研究一下下面的简单程序。 这个程序接收两个命令行参数然后执行加法和减法操作。 假设用户输入的是有效值因此代码中我们没有进行错误处理。   1 2 3 4 5 6 7 8 9 10 11 12 13 14 import sys def add(num10, num20):   return int(num1) int(num2) def sub(num10, num20):   return int(num1) - int(num2) def main():   #Assuming our inputs are valid numbers   print sys.argv   addition add(sys.argv[1], sys.argv[2])   print addition   subtraction sub(sys.argv[1], sys.argv[2])   print subtraction if __name__ __main__:   main() 2. PDB Python提供了一个有用的模块PDB它实际上是一个交互式源代码调试器。 你需要下面的两行代码来使用此模块。   1 2 import pdb pdb.set_trace() 看一下我们修改过的程序里面包含了一些断点。   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import pdb import sys def add(num10, num20):   return int(num1) int(num2) def sub(num10, num20):   return int(num1) - int(num2) def main():   #Assuming our inputs are valid numbers   print sys.argv   pdb.set_trace() # -- Break point added here   addition add(sys.argv[1], sys.argv[2])   print addition   subtraction sub(sys.argv[1], sys.argv[2])   print subtraction if __name__ __main__:   main() 3. 程序执行触发调试器 一旦你设置好断点以后你就可以像平时一样执行程序。   1 python debugger.py 1 2 程序将会在遇到的第一个断点处停止执行。   1 2 3 4 [debugger.py] /Users/someuser/debugger.py(15)main() - addition add(sys.argv[1], sys.argv[2]) (Pdb) 我们在第14行设置了一个断点所以我们能看到将要执行的下一行是第15行。可以看到在执行到第15行之前程序已经停止。 在这里我们有几个选项让我们在下面步骤中看看一些调试指令。4. 下一行-n 在你的调试器提示中输入n运行到下一行。   1 2 3 4 5 /Users/someuser/debugger.py(14)main() - addition add(sys.argv[1], sys.argv[2]) (Pdb) n /Users/someuser/debugger.py(15)main() - print addition 这会执行当前行代码并准备执行下一行。 我们可以使用n来逐行执行整个程序但这其实没有什么用处。 可能你已经看到PDB实际上并没有进入我们的add函数中。下面就让我们看看其他几个令调试更加有趣的选项。 注意     一个更酷的特性是你可以单击回车键来执行以前的命令在本例中只要指令n。 5. 打印-p 下面我们再次开始调试程序。你可以通过单击c使PDB跳到末尾或者直到下一个断点因为程序中我们并没有其他的断点了所有程序将会执行完成。   1 2 3 4 [debugger.py, 1, 2] /Users/someuser/debugger.py(14)main() - addition add(sys.argv[1], sys.argv[2]) (Pdb) 现在如果我们想知道sys.argv中包含什么内容我们可以输入以下内容   1 2 3 4 5 6 - addition add(sys.argv[1], sys.argv[2]) (Pdb) p sys.argv [debugger.py, 1, 2] (Pdb) p sys.argv[1] 1 (Pdb) 使用这种方法可以相当方便地查看变量中实际存储着什么值。 现在我们将进入加法函数内部。6. 单步-s 我们可以使用“s”进入加法函数内部。 1 2 3 4 5 6 7 8 (Pdb) s --Call-- /Users/someuser/debugger.py(4)add() - def add(num10, num20): (Pdb) n /Users/someuser/debugger.py(5)add() - return int(num1) int(num2) (Pdb) 这将把我们带入加法函数的内部现在我们可以在加法函数内部使用n、p和其他的操作指令。 此时单击“r”将会把我们带到前面进入函数的返回语句。 如果你想快速跳转到一个函数的结尾处那么这个指令将很有用。7. 动态添加断点- b 前面在程序运行之前我们使用pdb.set_trace()设置了一个断点。 不过经常在调试会话已经开始之后我们想要在程序中特定的地方添加断点。 这里我们就可以使用选项“b”来实现这种目的。 我们重新开始执行程序。   1 2 3 4 [debugger.py, 1, 2] /Users/someuser/debugger.py(15)main() - addition add(sys.argv[1], sys.argv[2]) (Pdb) 此时我在第18行设置一个断点。   1 2 3 4 5 6 7 8 9 10 11 - addition add(sys.argv[1], sys.argv[2]) (Pdb) b 18 Breakpoint 1 at /Users/someuser/debugger.py:18 (Pdb) c We are in add-- 3 /Users/someuser/debugger.py(18)main() - print subtraction (Pdb) p subtraction -1 (Pdb) 从上面我们可以看到PDB跳到了第18行并等待下一个指令。 同时PDB还为该断点分配了一个号码在本例中是1。为了以后的执行我们可以通过开启或禁用断点号码来启用或停用对应的断点。8. 列表-l 有时在调试的时候你可能会忘记此时你处在代码的什么地方。在这种情况下使用“l”将会打印出一个友好的总结它能够显示出此刻你在代码中的位置。   1 2 3 4 5 6 7 8 9 10 11 12 13 [debugger.py, 1, 2] /Users/someuser/debugger.py(15)main() - addition add(sys.argv[1], sys.argv[2]) (Pdb) l  10  11   def main():  12     #Assuming our inputs are valid numbers  13     print sys.argv  14     pdb.set_trace() # -- Break point added here  15 -   addition add(sys.argv[1], sys.argv[2])  16     print addition  17     subtraction sub(sys.argv[1], sys.argv[2])  18     print subtraction 9. 动态分配变量 在调试会话期间你可以分配变量来帮助你进行调试知道这些对你来说也是有帮助的。例如   1 2 3 4 5 6 7 8 9 10 11 12 13 14 [debugger.py, 1, 2] /Users/someuser/debugger.py(15)main() - addition add(sys.argv[1], sys.argv[2]) (Pdb) n We are in add-- /Users/someuser/debugger.py(16)main() - print addition (Pdb) p addition 3 #--- addition here is 3 (Pdb) addition this is now string #--- We changed the value of additon (Pdb) n this is now string #--- Now when we print it we actually gets it as a string. that we just set above. /Users/someuser/debugger.py(17)main() - subtraction sub(sys.argv[1], sys.argv[2]) 注意 如果你想设置一些如n即PDB指令这样的变量你应该使用这种指令   1 2 3 (Pdb) !n5 (Pdb) p n 5 10. 结束-q 最后在代码的任何地方如果你想结束调试可以使用“q”那么正在执行的程序将会终止。 点击拿去 50G学习视频教程 100Python初阶、中阶、高阶电子书籍
http://www.yayakq.cn/news/907/

相关文章:

  • 福建省建设局网站中卫网站建设哪家好
  • 如何做网站打广告自动化营销网站建设
  • 单页面网站入侵青岛seo培训
  • 一个网站做多少关键词建程网土石方工程
  • 寻找富阳网站建设合肥企业网站建设专家
  • 58这样网站怎么做品牌营销策划书籍
  • extjs网站开发阜蒙县建设学校官网网站
  • 网站界面用什么软件做如何使用表格做网站
  • 阿里云主机网站开发wordpress的seo作用
  • 大型企业网站制作品牌推广公司排名
  • 做短视频的网站收益青岛高端网站制作
  • 什么是友情链接?天津seo推广方法
  • 广州 网站建设 020网站结构
  • 新手站长如何购买虚拟主机做网站长沙网页设计师招聘信息
  • 用.net做网站好 还是用phpaliyun ftp wordpress
  • 什么网站可以查房屋建筑面积建设公司网站新闻宣传管理制度
  • 网站logo更换可以在线做试卷的网站
  • 网站网页设计怎样搜索公众号
  • 网站开发新闻管理系统的背景下载长沙app
  • 甘肃机械化建设工程有限公司网站琚宾设计公司官网
  • 网站怎么设计好看的图片网站建设创始人
  • 手游网站建设方案预算wordpress标签函数
  • 本地建站工具h5制作软件免费 fou
  • 门店管理系统appseo整站优化新站快速排名
  • 织梦网站模板安装本地免费申请靓号
  • 网站建设公司-好发信息网请私人做网站风险
  • 哪个网站可以做鞋鉴定黄骅港招聘最新招聘
  • 个人能免费做网站百度收录要多久
  • 国内图片素材网站给公司做网站 优帮云
  • 建站主机家装设计风格