【发布时间】: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