Python Doctest中的特殊字符和换行符

时间:2016-11-25 02:05:01

标签: python string python-3.x special-characters docstring

我有一个带有文档字符串的函数,如下所示,我想测试文档字符串是否正确。我目前正在使用doctest模块这样做。但是,我找不到一种方法来表示文档字符串中的新行字符和换行符,而不会崩溃。这是一个复制问题的例子:

def foo():
    r"""
    >>> foo() == ['1\n2\n',\
    '3']
    True
    """
    return ['1\n2\n', '3']

import doctest
doctest.testmod()

这会导致错误:

Failed example:
foo() == ['1\n2\n',\
Exception raised:
    Traceback (most recent call last):
      File "C:\Python34\lib\doctest.py", line 1318, in __run
        compileflags, 1), test.globs)
      File "<doctest __main__.foo[0]>", line 1
        foo() == ['1\n2\n',\
                           ^
    SyntaxError: unexpected EOF while parsing

我将如何做到这一点?

1 个答案:

答案 0 :(得分:1)

使用省略号...

def foo():
    r"""
    >>> foo() == ['1\n2\n',
    ... '3']
    True
    """
    return ['1\n2\n', '3']

import doctest
doctest.testmod()

source