【问题标题】:PyCharm-style docstring containing code with `>>>`PyCharm 样式的文档字符串,包含带有 `>>>` 的代码
【发布时间】:2021-12-11 17:21:43
【问题描述】:

我刚刚发现 PyCharm 支持带有前缀为 >>> 的代码的文档字符串,如下所示:

def foo(x):
  """
  Use it like:

  >>> foo(42)
  """
  print(x)

PyCharm 然后甚至在此应用通常的代码突出显示。

我试图找到有关此语法的任何文档。它似乎不是 reStructuredText 的一部分。狮身人面像也没有提到这一点。这是在某些 PEP 中引入的吗?还是这个 PyCharm 是特定的?但我没有找到任何关于此的 PyCharm 文档。

(这个用谷歌搜索很难。我不知道怎么称呼这个。“3倍大符号”?)

【问题讨论】:

  • 这是三个 fleches:>>>,它是 doctest 标准的一部分。您可以在 PyCharm 中右键单击它并说“运行 Doctest”
  • 通常是>>>,这是 Python REPL 提示符docs.python.org/3/tutorial/interpreter.html#interactive-mode,例如:docs.python.org/3/library/doctest.html
  • @jonrsharpe @PeterWood 实际上不是。至少对于 PyCharm 来说不是。 PyCharm 不以任何特殊方式处理>>>,但它确实处理>>>>。所以也许它是 PyCharm 特有的?还是 PyCharm 从某个地方接管了这个?
  • 我现在站在它前面(v2021.2.2 Pro),它确实如此 - 只要有至少三个>,它就会被格式化作为代码。如上所述,您可以将其作为 doctest 运行。使用 >>> 会失败,因为您没有显示输出 (Expected nothing Got: 42),使用 >>>> 会失败,因为这不是有效的 REPL (ValueError: line 4 of the docstring for foo lacks blank after >>>: '>>>> foo(42)')。
  • @jonrsharpe 哦,对不起。这很奇怪。你说的对。我之前测试过这个,但不知何故我一定做了不同的事情。此外,当我从使用 >>> 的外部库(例如 PyTorch)浏览文档时,PyCharm 的格式不正确。但也许只是因为它们是外部的。

标签: python pycharm python-sphinx restructuredtext


【解决方案1】:

cmets 已经回答了这个问题。我只是为了完整性把它放在这里:

这是三个肉体 (>>>)。

用于doc test

在 PyCharm 中,当你右键单击它时,它允许你Run Doctest

语法可能来自Python interactive shell

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多