2014-02-19 3 views
0

Я пытался использовать doctest для следующих источников:Массивы, как ожидалось, результаты в доктрине. Ошибка с текстом «Ожидаемое ничего». Python 3.3.2

def add_greeting(L=[]): 
    """ (list) -> NoneType 

    Append 'hello' to L and print L. 

    >>> greetings_list = ['hi', 'bonjour'] 
    >>> add_greeting(greetings_list) 
    >>> greetings_list 
    ['hi', 'bonjour', 'hello'] 
    """ 

    L.append('hello') 
    print(L) 


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

Когда я запустил этот файл как 'питона my_file.py', я получил следующее:

python my_file.py 
********************************************************************** 
File "my_file.py", line 9, in __main__.add_greeting 
Failed example: 
    add_greeting(greetings_list) 
Expected nothing 
Got: 
    ['hi', 'bonjour', 'hello'] 
********************************************************************** 
1 items had failures: 
    1 of 3 in __main__.add_greeting 
***Test Failed*** 1 failures. 
TestResults(failed=1, attempted=3) 

Может ли кто-нибудь помочь мне с этой ошибкой, пожалуйста? Почему в этом случае у меня нет ожиданий? Как это можно исправить?

ответ

0

Попробуйте

def add_greeting(L=[]): 
    """ (list) -> NoneType 

    Append 'hello' to L and print L. 

    >>> greetings_list = ['hi', 'bonjour'] 
    >>> add_greeting(greetings_list) 
    ['hi', 'bonjour', 'hello'] 
    >>> greetings_list 
    ['hi', 'bonjour', 'hello'] 
    """ 

    L.append('hello') 
    print(L) 


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

Вы получаете сообщение об ошибке, потому что у вас есть print(L) в конце add_greeting, но ваш пример вывод консоли в строке документации не ожидает ничего быть распечатано или возвращаемым add_greeting.

+0

Хорошо поймать! Теперь я понимаю, почему у меня такая ошибка! Большое спасибо! Все работает отлично! Я должен уделить больше внимания выражению в разделе «Неудавшийся пример:» ... – mnlaptev