【问题标题】:How to auto-generate the type of a field in a docstring in PyCharm?如何在 PyCharm 的文档字符串中自动生成字段的类型?
【发布时间】:2015-06-26 09:23:53
【问题描述】:

当我创建一个带参数的函数时,PyCharm 让我可以创建带有:param param_name: 字段的文档字符串,这非常好。但我还需要添加:type param_name:

因此:

def foo(bar, xyz):
    return bar + xyz

使用生成文档字符串选项我有(即使在文档存根中插入'type'和'rtype'启用):

def foo(bar, xyz):
    """
    :param bar:
    :param xyz:
    """
    return bar + xyz

而且我愿意

def foo(bar, xyz):
    """
    :param bar:
    :type bar:
    :param xyz:
    :type xyz:
    """
    return bar + xyz

【问题讨论】:

    标签: python pycharm docstring


    【解决方案1】:

    the documentation:

    如果configured,可以生成文档注释存根 带有typertype 标签。

    点击链接:

    ...

    1. Smart Keys 页面中,选中复选框插入“类型”并 'rtype' 到文档注释存根

    请注意,文档已经更新,配置指南目前为:

    启用文档 cmets

    1. 打开编辑器|一般 | PyCharm 设置的 Smart Keys 页面⌃⌥S

    2. Enter 部分中,选中或清除 Insert documentation comment stub 复选框。

    3. 然后,滚动到 在文档注释存根选项中插入类型占位符并选中或清除复选框 按要求。详情请参阅选项说明。


    完成此操作后,将光标放在定义中的参数名称上,激活智能键功能(默认为 Alt+Enter)并选择 在文档字符串中指定类型以供参考。这将插入适当的注释行。同样,您可以将光标放在函数/方法名称上,然后选择Specify return type in docstring

    【讨论】:

    • 不适用于我。我只添加了“:return::rtype:”(在重新启动pycharm之后)
    • @FunkySayu 那么请提供一个示例,或者考虑向开发人员提出错误报告。
    • @FunkySayu 似乎没有一步到位的解决方案;我已经更新了答案
    • erf... 这也是我发现的。也许我会为此做一个功能请求。无论如何,感谢您的帮助。
    • 我偶然发现了一些东西:当您使用 Alt+Enter 键生成文档字符串时,该解决方案不起作用(不会生成 :type:、:return: :rtype:)。但是如果你定义了你的函数并且在你写了“””之后,文档就会正确生成。检查它是否适用于你,更新你的答案,我将它设置为已解决。
    【解决方案2】:

    转到Settings > Editor > General > Smart Keys,然后选中显示Insert type placeholders in the documentation comment stub 的框。

    【讨论】:

    • 此设置现在位于 Editor->General->Smart Keys->Python 中。但我想知道 PyCHarm 是否应该从方法声明中的类型注释中自动获取typedef check(self, key: str, not: str, id: str) -> str:
    【解决方案3】:

    只需启用此复选框:

    编辑器 - 常规 - 智能键 - 在文档注释存根中插入类型占位符。

    还记得启用此项目,以便您可以使用 Alt+enter 自动插入文档:

    编辑器 - 常规 - 智能键 - 插入文档注释存根

    【讨论】:

      【解决方案4】:

      您的问题已经得到答复,但我发现您可以使用的相关点

      def foo(bar, xyz):
          """
      
      
          :param bar_type bar:
          :param xyz_type xyz:
          """
          return bar + xyz
      

      使用说明bar_typexyz_type变量的类型。一个很好的提示是您可以使用| 设置多个可能的类型。示例:

      def foo(bar, xyz):
          """
      
      
          :param float|int bar:
          :param numpy.array xyz:
          """
          return bar + xyz
      

      【讨论】:

        【解决方案5】:

        首先,检查您是否启用了 restructuredText 插件。要检查,请转到首选项 - 插件 - restructuredText(如果未启用,请选中该框以启用它) 接下来,在同一个首选项选项卡中,导航到工具 > Python 集成工具 > 文档字符串

        然后:

        • 更改 Docstring 格式:restructuredText(而不是 Plain)
        • 复选框“分析文档字符串中的 python 代码”
        • 选中“为 stdlib 呈现外部文档”复选框

        应用更改并关闭。

        最后,要验证更改,转到功能块并添加三个引号(单引号或双引号)并按回车或空格,您应该会看到自动生成的文档字符串。

        【讨论】:

        • 我需要更改文档字符串格式 - 谢谢!
        猜你喜欢
        • 2021-01-29
        • 2017-02-05
        • 1970-01-01
        • 2021-10-12
        • 2015-06-22
        • 2019-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多