Think Python—调试 7

2019-02-01  本文已影响4人  JeetChan

以下摘录自《Think Python》第七章:迭代中的调试一节。详见:http://www.codingpy.com/books/thinkpython2/07-iteration.html#id6

当你开始写更为复杂的程序时,你会发现大部分时间都花费在调试上。更多的 代码意味着更高的出错概率,并且会有更多隐藏 bug 的地方。

减少调试时间的一个方法就是“对分调试”。例如,如果程序有 100 行,你一次检查一行,就需要 100 步。

相反,试着将问题拆为两半。在代码中间部分或者附近的地方,寻找一个可以检查的中间值。加上一行 print 语句(或是其他具有可验证效果的代码),然后运行程序。

如果中间点检查出错了,那么就说明程序的前半部分存在问题。如果没问题,则说明是后半部分出错了。

每次你都这样检查,就可以将需要搜索的代码行数减少一半。经过 6 步之后(这比 100 小多了),你将会找到那或者两行出错的代码,至少理论上是这样。

在实践中,可能并不能很好的确定程序的 “中间部分” 是什么,也有可能并不是那么好检查。 计算行数并且取其中间行是没有意义的。相反,多考虑下程序中哪些地方比较容易出问题,或者 哪些地方比较容易进行检查。然后选定一个检查点,在这个断点前后出现 bug 的概念差不多。

上一篇 下一篇

猜你喜欢

热点阅读