Think Python—调试 6

以下摘录自《Think Python》第六章:有返回值的函数中的调试一节。详见:http://www.codingpy.com/books/thinkpython2/06-fruitful-functions.html#factdebug

将一个大程序分解为较小的函数为调试生成了自然的检查点。 如果一个函数不如预期的运行,有三个可能性需要考虑:

  • 该函数获得的实参有些问题,违反先决条件。
  • 该函数有些问题,违反后置条件。
  • 返回值或者它的使用方法有问题。

为了排除第一种可能,你可以在函数的开始增加一条 print 语句来打印形参的值(也可以是它们的类型)。 或者你可以写代码来显示地检查先决条件。

如果形参看起来没问题,就在每个 return 语句之前增加一条 print 语句,来打印返回值。 如果可能,手工检查结果。 考虑用一些容易检查的值来调用该函数(类似在增量式开发 一节中那样)。

如果该函数看起来正常工作,则检查函数调用,确保返回值被正确的使用(或者的确被使用了!)。

在一个函数的开始和结尾处增加打印语句,可以使执行流程更明显。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 7,972评论 2 9
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 8,136评论 0 9
  • 包(lib)、模块(module) 在Python中,存在包和模块两个常见概念。 模块:编写Python代码的py...
    清清子衿木子水心阅读 9,207评论 0 27
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,162评论 0 10
  • 从小就有个心愿,至今未能实现,就是想有个哥哥,亲生的;小时候妈妈说,哥哥不可能了,只可能是弟弟;我说不想要弟弟,果...
    周茜_亲子教育阅读 3,823评论 2 6