Tiene una función fix(), como función auxiliar de una función de salida que escribe cadenas en un archivo de texto.Doctest que implica caracteres de escape
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
Encendido de prueba unitaria, me sale el siguiente error:
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')
^
No importa qué combinación de \ y 's utilizo, no parece la doctest a querer trabajar, a pesar de la función en sí funciona perfectamente. Sospeche que es el resultado de que el miembro más docto esté en un comentario bloqueado, pero tenga algún consejo para resolverlo.
Tenga en cuenta que una cadena con comillas triples no es realmente un comentario en bloque (aunque lo he visto utilizado como tal). Una cadena con comillas triples es solo una cadena a la que se le permite tener una nueva línea. Cuando se usa como comentario, lo que realmente está haciendo es crear una cadena y no asignarla a nada (por ejemplo, crear la cadena y luego tirarla). Python en realidad no tiene un comentario en bloque ... las cadenas que siguen inmediatamente a una definición de función son especiales y están implícitamente asignadas al atributo '__doc__' de la función. – mgilson