2016-12-01 18 views
0

在下面的代碼:文檔字符串有不一致的前導空格

def read_file(filename): 
    """ 
    >>> read_file('text.txt') 
    {'Donald Trump': [('Donald Trump', 'Join me live in Springfield, Ohio!\nLit!!\n', 1477604720, 'Twitter for iPhone', 5251, 1895)]} 
    """ 

我得到一個錯誤說:

ValueError: line 4 of the docstring for __main__.read_file has inconsistent leading whitespace: 'Lit!!' 

任何想法是什麼原因造成的?

+0

凡被觸發錯誤?看起來你正在運行doctests。正如某人已經回答的那樣,問題在於測試數據中的那些未轉義的新行。但無論如何,doctests對於有副作用的功能來說並不是最佳的。如果找不到'text.txt',或者內容與期望的不同,則此測試將失敗。 –

回答

5

轉義文檔字符串中的所有反斜槓。那就是:

\nLit!!\n 

應改爲:

\\nLit!!\\n' 

另外,您可以提供文檔字符串作爲原始字符串,而不是擔心反斜槓:

r""" 
>>> read_file('text.txt') 
{'Donald Trump': [('Donald Trump', 'Join me live in Springfield, Ohio!\nLit!!\n', 1477604720, 'Twitter for iPhone', 5251, 1895)]} 
""" 
+0

所以我不需要修改我的代碼,除了docstring – CAVS

+0

的權利。錯誤是由於'\ n'被解釋爲字符串的一部分,從而制動您提供的表達式。 –

+0

爲什麼等待接受答案這麼久 – CAVS

相關問題