Pycharm docstring:代码引用和docstring继承

时间:2017-11-22 22:45:17

标签: python-3.x pycharm restructuredtext docstring

我目前正在浏览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会自动执行此操作,这使我认为可以手动执行此操作。但是,我再也找不到任何相关信息。

事情变得如此简单,让事情变得非常复杂。所以,任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

  

我想从某些文档字符串链接到其他方法/函数/类,但是我不知道该怎么做。

您正确的说reStructuredText文档没有涵盖此内容,因为它不是reStructuredText的功能。

您可能(通过某种工具通过显式或隐式使用)the Sphinx system(Docutils的超集)来允许(在许多其他功能中)不同文档字符串之间的引用。

狮身人面像defines several Docstring “roles”(在反引号之前的文本前的:foo:)出于不同的目的:

  • doc,是对整个文档的引用。
  • ref,一个任意的交叉引用。
  • …许多其他人。

对于特定的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:

         

    引用未指定类型的对象。

  •