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

如何用sphinx-autodoc2隐藏dataclass类的重复参数列表?

解决sphinx-autodoc2生成dataclass文档时参数重复的问题

针对你遇到的dataclass参数在文档中重复显示的问题,有几种实用的解决办法:

方法一:移除docstring中的:param注释,直接用字段注释

既然@dataclass已经通过类属性定义了参数,没必要在docstring里重复写:param说明。可以把docstring里的参数部分删掉,转而在属性后面加注释,让sphinx-autodoc2直接从字段提取文档:

@dataclass
class myclass:
    """Some class"""
    first_param: str  # some description
    second_param: int  # some description

    def __post_init__(self):
        etc...

这样生成的文档会把字段注释作为参数说明,不会出现重复条目。

方法二:全局配置隐藏类属性列表

如果不想修改代码,可在Sphinx的conf.py里添加配置,让autodoc2不单独显示类的属性字段,只保留docstring中的Parameters部分:

autodoc2_hide_class_attributes = True

开启这个配置后,所有dataclass的属性都不会被单独列出,只在Parameters区域展示一次。

方法三:用元指令单独隐藏指定属性

如果只想隐藏部分重复的属性,或者不想修改全局配置,可以在类属性定义后添加:meta hide-value:指令,告诉autodoc2不要单独显示这些属性:

@dataclass
class myclass:
    """Some class

    :param first_param: some description
    :param second_param: some description
    """
    first_param: str
    second_param: int
    :meta hide-value:

    def __post_init__(self):
        etc...

这个指令会让当前类的所有属性不被单独列出,只保留Parameters里的说明。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:54:58