我目前正在浏览Jetbrains Pycharm 2017.1.5中的项目,记录我所有的python 3.6类和方法,并且有几个关于docstring格式的东西。
我想链接到某些文档字符串中的其他方法/函数/类,但我无法弄清楚如何执行此操作。 restructuredText的文档非常非常广泛,但它没有说明使用 Pycharm 引用其他文档字符串。实际上,该页面中的绝大部分片段甚至都不能在Pycharm中运行。 (为什么?)
我设法发现您可以使用:class:`<class_name>`
来引用某个类,但:class:`<class.method>`
不起作用,类似命名的:func:`<func_name>`
之类的构造不会创建超链接。我也看到:ref:`<name>`
出现,但那个也不起作用。
(如果没有出现此错误,我会切换到Epytext(它有我想要的一切,加上它更简单):{+ 1}}在Ctrl + Q帧中。)
如果有一种方法可以继承子类/重写方法中的docstring,那么它也会非常有用。如果您将docstring留空,Pycharm会自动执行此操作,这使我认为可以手动执行此操作。但是,我再也找不到任何相关信息。
事情变得如此简单,让事情变得非常复杂。所以,任何帮助将不胜感激!
答案 0 :(得分:1)
我想从某些文档字符串链接到其他方法/函数/类,但是我不知道该怎么做。
您正确的说reStructuredText文档没有涵盖此内容,因为它不是reStructuredText的功能。
您可能(通过某种工具通过显式或隐式使用)the Sphinx system(Docutils的超集)来允许(在许多其他功能中)不同文档字符串之间的引用。
狮身人面像defines several Docstring “roles”(在反引号之前的文本前的:foo:
)出于不同的目的:
对于特定的Python代码,“域” py
具有其特定的roles for Python code docstrings集:
:py:mod:
引用一个模块;可以使用点名。这也应该用于包名称。
:py:func:
参考Python函数;可以使用点名。角色文本不必包含尾括号以提高可读性;如果add_function_parentheses配置值为True(默认值),它们将由Sphinx自动添加。
:py:data:
引用模块级变量。
:py:const:
引用一个“定义的”常量。这可能是不希望更改的Python变量。
:py:class:
引用一个类;可以使用点名。
:py:meth:
引用对象的方法。角色文本可以包括类型名称和方法名称;如果它出现在类型的描述中,则可以省略类型名称。可以使用点名。
:py:attr:
引用对象的数据属性。
:py:exc:
引用一个异常。可以使用点名。
:py:obj:
引用未指定类型的对象。