You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何验证Python类文档字符串中列出的方法与属性真实存在?

需求:验证Python类文档字符串中列出的属性和方法是否真实存在

我需要一款工具,能解析Python类的文档字符串,验证其中列出的属性、方法确实存在于类中,用于CI/CD流水线,确保新代码的文档编写准确。PEP 257建议在类的文档字符串中列出方法,但这一做法存在争议。

示例代码

以下是带有文档字符串错误的示例类,用于展示我想要捕获的问题:

"""An example module to ask a question on SO."""


class ExampleClass:
    """
    An example class.

    Attrs:
    ------------
    typo_ : str
        mistake I made

    Methods
    --------------
    my_method()
        method which doesn't exist

    """

    typo: str

    def my_methd(self) -> None:
        """Typo in the name."""
        return

注:文档字符串中的属性和方法存在拼写错误——实际属性是typo但文档里写了typo_,实际方法是my_methd但文档里写了my_method。

已测试但无效的工具

我已经测试过以下工具,但它们都没能检测出上述示例中的问题:

  • Interrogate (1.5.0)
  • pydocstyle(6.3.0)
  • pydoctest (0.1.22)
  • ruff (0.2.2)
  • darglint2 (1.8.2)
  • docsig (0.44.2)
  • pydoclint (0.4.1)

部分有效的工具

其中flake8-docstring-complete (1.3.0)能捕获到typo属性未在文档字符串中描述的问题,但无法检查类方法的文档是否匹配。

提问

请问有什么方法可以实现我的需求?


内容的提问来源于stack exchange,提问作者John Otter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 22:07:10