文档测试doctest及常见问题

本文档介绍了在使用doctest模块进行测试时可能遇到的三个问题及其解决方案:文件名冲突导致AttributeError,docstring格式错误引发ValueError,以及异常处理不当造成的Traceback问题。通过修改文件名、调整docstring格式和正确处理异常,可以避免这些错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

#!/usr/bin/env python
#_*_ coding:utf-8 _*_

author = 'Noiccy'
'''description:文档测试'''

def fact(n):
    '''
    Calculate 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()

运行后,没有输出内容才是正确的!

 

可能遇到的问题:

一、AttributeError: module 'doctest' has no attribute 'testmod'

报错原因:保存的文件名是doctest.py,导致doctest模块被重写。修改文件名,并删除文件目录下的__pycache__文件夹后,重新运行即可

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

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值