32

Python doctests を書くとき、テストの文字列内に改行文字を適切に導入するにはどうすればよいですか? 簡単な例を次に示します。

def remove_newlines(text):
    """
    >>> remove_newlines("line1 \n"
    ...                 "still line 1\r"
    ...                 "now line2 \n"
    ...                 "more line2\n")
    line1 still line1
    now line2 more line2
    """
    return text.replace('\n', '')

import doctest
doctest.run_docstring_examples(remove_newlines, globals())

その出力は次のとおりです。

Traceback (most recent call last):
...
ValueError: line 3 of the docstring for NoName has inconsistent leading whitespace: '"'
4

3 に答える 3

21

バックスラッシュをエスケープする必要があります。

docstring 自体は、\n改行を意味する文字列です。の

def foo():
    """
    print "Hello world\n";
    """
    pass

docstring に有効な Python ステートメントが含まれていませんが、代わりに引用符で囲まれた文字列内に改行が含まれています

于 2013-09-12T19:42:02.273 に答える