首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python doctest ValueError:“之后缺少空白”

Python doctest ValueError:“之后缺少空白”
EN

Stack Overflow用户
提问于 2018-08-28 03:11:29
回答 1查看 1.7K关注 0票数 1

我有以下函数和docstring:

代码语言:javascript
复制
def vflip(self):
    """
    Vertically flips the characters on this canvas.

    >>> canvas = Canvas(4, 4)
    >>> canvas.fill('.')
    >>> canvas[0, 0] = 'A'
    >>> canvas[1, 1] = 'B'
    >>> canvas[2, 2] = 'C'
    >>> canvas[3, 3] = 'D'
    >>> print(canvas)
    A...
    .B..
    ..C.
    ...D
    >>> canvas.vflip()
    >>> print(canvas)
    ...D
    ..C.
    .B..
    A...
    """
    for y in range(0, self.height // 2):
        for x in range(0, self.width):
            self._chars[x][y], self._chars[x][self.height - 1 - y] = self._chars[x][self.height - 1 - y], self._chars[x][y]
    self._strDirty = True

这会产生以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "__init__.py", line 1332, in <module>
    print(doctest.testmod())
  File "C:\Users\Al\AppData\Local\Programs\Python\Python37\lib\doctest.py", line 1949, in testmod
    for test in finder.find(m, name, globs=globs, extraglobs=extraglobs):
  File "C:\Users\Al\AppData\Local\Programs\Python\Python37\lib\doctest.py", line 932, in find
    self._find(tests, obj, name, module, source_lines, globs, {})
  File "C:\Users\Al\AppData\Local\Programs\Python\Python37\lib\doctest.py", line 995, in _find
    globs, seen)
  File "C:\Users\Al\AppData\Local\Programs\Python\Python37\lib\doctest.py", line 1029, in _find
    globs, seen)
  File "C:\Users\Al\AppData\Local\Programs\Python\Python37\lib\doctest.py", line 982, in _find
    test = self._get_test(obj, name, module, globs, source_lines)
  File "C:\Users\Al\AppData\Local\Programs\Python\Python37\lib\doctest.py", line 1066, in _get_test
    filename, lineno)
  File "C:\Users\Al\AppData\Local\Programs\Python\Python37\lib\doctest.py", line 668, in get_doctest
    return DocTest(self.get_examples(string, name), globs,
  File "C:\Users\Al\AppData\Local\Programs\Python\Python37\lib\doctest.py", line 682, in get_examples
    return [x for x in self.parse(string, name)
  File "C:\Users\Al\AppData\Local\Programs\Python\Python37\lib\doctest.py", line 644, in parse
    self._parse_example(m, name, lineno)
  File "C:\Users\Al\AppData\Local\Programs\Python\Python37\lib\doctest.py", line 702, in _parse_example
    self._check_prompt_blank(source_lines, indent, name, lineno)
  File "C:\Users\Al\AppData\Local\Programs\Python\Python37\lib\doctest.py", line 789, in _check_prompt_blank
    line[indent:indent+3], line))
ValueError: line 17 of the docstring for __main__.Canvas.vflip lacks blank after ...: '...D'

我不确定为什么我会得到这个错误。其他StackOverflow帖子通常指出,>>>和该行上的代码之间没有空格,但这里不是这样。为什么我会得到这个错误?

EN

回答 1

Stack Overflow用户

发布于 2018-08-28 03:11:29

这是一个特例,其中输出文本'...D'模仿其他Python提示符。交互式shell使用>>>作为常规提示,但多行语句中的任何其他行都使用...作为辅助提示。'...D'令人困惑的文档测试,并使它认为这是一个提示。

例如,请注意此基本代码中的两个提示:

代码语言:javascript
复制
>>> for i in range(5):
...     print('Hello, world!')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52045637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档