有一个函数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