有一個函數fix(),作爲將字符串寫入文本文件的輸出函數的輔助函數。Doctest涉及轉義字符
def fix(line):
"""
returns the corrected line, with all apostrophes prefixed by an escape character
>>> fix('DOUG\'S')
'DOUG\\\'S'
"""
if '\'' in line:
return line.replace('\'', '\\\'')
return line
打開文檔測試,我得到以下錯誤:
Failed example:
fix('DOUG'S')
Exception raised:
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/doctest.py", line 1254, in __run
compileflags, 1) in test.globs
File "<doctest convert.fix[0]>", line 1
fix('DOUG'S')
^
不管我用什麼樣的\組合和年代,文檔測試似乎並不想工作,即使該功能本身完美工作。懷疑這是由於doctest在阻止評論中的結果,但有任何提示可以解決此問題。
請注意,三重引號的字符串並不是真正的塊註釋(儘管我已經看到它是這樣使用的)。三重引號字符串只是一個允許在其中包含換行符的字符串。當作爲註釋使用時,你真正在做的是創建一個字符串,而不是將它分配給任何東西(例如創建字符串然後丟棄它)。 Python實際上沒有塊註釋......緊跟在函數定義之後的字符串是特殊的,並且隱含地分配給函數的__doc__屬性。 – mgilson 2012-08-01 19:03:09