小心文档测试>>>的坑!

今天下午看了廖雪峰老师的文档测试,看着很简单,自己在pycharm上运行一个小小的程序总是报错,我复制别人的代码跑一遍能跑通,和自己的比对没有任何区别啊。

def fact(n):
    """
     Caculate 1*2*...*n
     >>>fact(1)   #这里>>>后面要有空格,不然出错
     1
     >>>fact(10)  #这里>>>后面要有空格,不然出错
     3628800
     >>>fact(-1)  #这里>>>后面要有空格,不然出错
     Traceback (most recent call last):
     ...
     ValueError
    """

    if n < 1:
        raise ValueError()
    if n == 1:
        return 1
    return n * fact(n-1)

if __name__ == '__main__':
    import doctest
    doctest.testmod()

就在这一直干瞪眼,不知道怎么就不对了,出现错误总是提醒我:

ValueError: line 3 of the docstring for __main__.fact lacks blank after >>>: '>>>fact(1)'

再三仔细看了错误,看到了blank这个单词,这不是代表空白,空格的意思吗?我竟然在>>>后面少敲了一个空格。

修改后测试成功:

Process finished with exit code 0

再补充一个doctest的小知识点:

doctest.testmod(verbose=True)  #doctest.testmod是测试模块,verbose默认是False,意思是出错才用提示;True,对错都有执行结果


 

猜你喜欢

转载自blog.csdn.net/jiangsujiangjiang/article/details/82773790