我的文档字符串:

def some_f():
    """
    1. First story
        >>> str(5)
        if you want to see the value:
        >>> print(str(5))
    2. Another story
        bla bla
    """

在使用doctest时,我得到的结果是:

ValueError:File.Class.ome_f的文档字符串的第6行具有不一致的前导空格:‘2.另一个故事’

我已经读到(herehere),当用户在文档字符串中使用\n或其他特殊字符时,可能会发生这个问题,但这里不是这种情况.不知道为什么会发生这种情况,也不知道如何解决.事实上,它希望我将第二个点向右移动,因为这可以正常工作:

def some_f():
    """
    1. First story
        >>> str(5)
        if you want to see the value:
        >>> print(str(5))
        2. Another story
        bla bla
    """

但这不是我想要的.

推荐答案

问题和标题应该包括这样的说明:出现这个错误是因为您运行的是doctest.testmod();否则,Python不会关心您的格式.

问题是,doctest期望每一行看起来像是交互提示的内容后面都跟着doctest的预期输出,并且它认为空行或出现>>>的其他值就是预期结果的结束.

留下一个空行以显示预期输出的结束,它将不会关心下一行的空格.


def some_f():
    """
    1. First story
        >>> str(5)
        '5'
        
        if you want to see the value:
        >>> print(str(5))
        5
        
    2. Another story
        bla bla
    """
    pass

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

如果在'5'之后没有换行符,这种情况将失败,因为doctest将包括if you want to see the value:作为来自>>>str(5)的预期输出的一部分

Python相关问答推荐

如何在WTForm中使用back_plumates参考brand_id?

使用unmanagedexports从Python调用的c#DLC

try 使用tensorFlow.keras.models时optree Import错误

使用Python C API重新启动Python解释器

如何将新的SQL服务器功能映射到SQL Alchemy的ORM

如何将带有逗号分隔的数字的字符串解析为int Array?

创建带有二维码的Flask应用程序,可重定向到特定端点

Python无法在已导入的目录中看到新模块

Polars:使用列值引用when / then表达中的其他列

Pandas :多索引组

如何处理嵌套的SON?

如何根据另一列值用字典中的值替换列值

时间序列分解

Python上的Instagram API:缺少client_id参数"

切片包括面具的第一个实例在内的眼镜的最佳方法是什么?

如何请求使用Python将文件下载到带有登录名的门户网站?

如何获取numpy数组的特定索引值?

Django REST Framework:无法正确地将值注释到多对多模型,不断得到错误字段名称字段对模型无效'<><>

Pandas—在数据透视表中占总数的百分比

* 动态地 * 修饰Python中的递归函数