2016-11-25 21 views
1

У меня есть функция с docstring, которая выглядит следующим образом, и я хочу проверить правильность строки документа. В настоящее время я использую модуль doctest для этого. Тем не менее, я не могу найти способ представления новых символов строк и разрывов строк в docstring без его сбоя. Вот пример, который воспроизводит проблему:Специальные символы и разрывы строк в Python 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 

Как бы это сделать?

ответ

0

Используйте многоточие ...:

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

import doctest 
doctest.testmod() 

(source)