【问题标题】:Python, Google style docstrings: Define an argument or return type as a sublcass of another type?Python,Google 风格的文档字符串:将参数或返回类型定义为另一种类型的子类?
【发布时间】:2021-09-02 16:06:48
【问题描述】:

应该如何使用 Google 样式的文档字符串记录参数或返回类型旨在成为特定类型的子类?

这是我在使用类型提示时建议子类的方式。

from typing import TYPE_CHECKING, Type
...

if TYPE_CHECKING:
    from package.core import AbstractClass

def foo(bar: Type["AbstractClass"]) -> str:
    ...

假设以上是合理的,那么我该如何在文档字符串中类似地记录呢?

def foo(bar: Type["AbstractClass"]) -> str:
    """Map the class to str for no other reason then that SO question makes more sense.

    Args:
        bar (???): A concrete subclass of an abstract class.

    Returns:
        str: ...
    """
    ...

【问题讨论】:

  • 如果有类型提示,是否需要在文档字符串中重新声明类型。我知道的大多数工具都会根据类型提示自动执行此操作(例如 Sphinx)。
  • 我正在使用pdoc。狮身人面像看起来有点矫枉过正,但我​​现在更仔细地观察它。

标签: python docstring pdoc


【解决方案1】:

我建议不要重复文档字符串中的类型信息。你提到你使用了pdoc,它已经显示了类型注释,所以你在这里创建了一个不必要的不​​一致源。

如果你真的想重复类型信息,你可以重复你用于注释的内容,即Type[AbstractClass]

【讨论】:

  • 是的,这是有道理的,但似乎pdoc 并没有为我的包选择类型提示。打算深入研究一下。
  • 您可能需要确保您使用的是最新的 7.x 版本。如果您认为这是一个 pdoc 问题,请随时通过 github.com/mitmproxy/pdoc 向我们发送错误报告。 :)
猜你喜欢
  • 1970-01-01
  • 2021-08-10
  • 1970-01-01
  • 2011-12-07
  • 2020-09-17
  • 1970-01-01
  • 2017-02-03
  • 2021-11-24
  • 2015-09-17
相关资源
最近更新 更多