Python Sphinx不显示泛型类(即参数类型)的类实例化参数

Python Sphinx不显示泛型类(即参数类型)的类实例化参数,python,python-sphinx,autodoc,python-typing,Python,Python Sphinx,Autodoc,Python Typing,通用Python类(即参数化类型)的Sphinx HTML文档不显示初始化参数 所需输出:类GenericClass(值:T) 实际输出:类GenericClass(*args,**kwargs) Python源代码(class_test.py) 从输入import Generic,TypeVar #:TypeVar(“T”):用作泛型类型参数的类型变量。 T=类型变量(“T”) 类GenericClass(泛型[T]): “”“接受泛型类型参数的类。 属性: 值:泛型类型为``T``的值。 "

通用Python类(即参数化类型)的Sphinx HTML文档不显示初始化参数

所需输出
类GenericClass(值:T)

实际输出
类GenericClass(*args,**kwargs)

Python源代码(class_test.py)
从输入import Generic,TypeVar
#:TypeVar(“T”):用作泛型类型参数的类型变量。
T=类型变量(“T”)
类GenericClass(泛型[T]):
“”“接受泛型类型参数的类。
属性:
值:泛型类型为``T``的值。
"""
定义初始值(自身,值:T):
self.value:T=value
级别常规级别:
“”“显式类型化的常规类。
属性:
值:字符串值。
"""
定义初始化(self,值:str):
self.value:str=value
斯芬克斯输出

conf.py class_test.rst
我使用
sphinx.ext.autodoc
扩展和配置,可以使用问题中的Python代码

conf.py

扩展=[
“sphinx.ext.autodoc”,
]
autodoc_typehits='签名'
自动文档\默认\选项={
"委员":对,,
“观察员委员会成员”:正确,
“成员顺序”:“按来源”,
}
type\u var\u test.rst

=============
type_var_test
=============

.. automodule:: type_var_test
    :show-inheritance:
它还可以使用
sphinx.ext.poleon
和下面的配置。请注意,尽管在
.rst
中,最好使用将其声明为模块级变量。这就留下了几种风格选择,如果你选择谷歌风格,它会是这样的:

conf.py

扩展=[
“sphinx.ext.autodoc”,
“斯芬克斯外景拿破仑”,
]
#拿破仑背景
拿破仑•谷歌•文档字符串=真
napoleon\u numpy\u docstring=True
napoleon_包含_init_和_doc=False
napoleon_包含_private_和_doc=False
napoleon_包含_special_,带_doc=False
拿破仑对例子使用警告=错误
拿破仑对注释使用警告=错误
拿破仑对引用使用警告=错误
拿破仑(napoleon)_use_ivar=False
napoleon_use_param=False
napoleon\u use\u rtype=False
type\u var\u test.py

从输入import Generic,TypeVar
#:TypeVar(“T”):类型变量主要用于静态类型检查器。
T=类型变量(“T”)
类GenericClass(泛型[T]):
“”“接受泛型类型参数的类。
属性:
value(:class:`T`):带有docstring类型的Google样式。
"""
定义初始值(自身,值:T):
self.value:T=value
type\u var\u test.rst

=============
type_var_test
=============

.. automodule:: type_var_test
    :show-inheritance:
=============
类型变量测试
=============
.. 自动模块::类型变量测试
:显示继承:
:排除成员:T
.. 自动数据::T
:注释:=TypeVar(“T”)
斯芬克斯发行版在3.4.0版中正式修复

发件人:

3.4.0版

新增功能
  • #8219:autodoc:启用super类时,不显示泛型类的参数 给出了一个泛型类和显示继承选项(在Python 3.7或更高版本中)

使用带有autodoc和napoleon的Sphinx 3.2.1版,我尝试了上面所示的精确设置,类签名仍然显示为
class GenericClass(*args,**kwargs)
@Christophesert我刚刚使缓存无效,得到了与您相同的结果。所以它是一个bug,最近坏了。我试着运行我的代码和你的代码,仔细比较两者,但它不再起作用了。值得注意的是,在系统重新启动、venv升级、在venv中持久化、在终端Python和Sphinx上运行的缓存都是最新的……正如屏幕截图所示,这是一个诚实的错误。(这可能有助于识别错误。)
=============
type_var_test
=============

.. automodule:: type_var_test
    :show-inheritance: