Python sphinx 如何使用Sphinx生成Python对象常量的有用文档?

Python sphinx 如何使用Sphinx生成Python对象常量的有用文档?,python-sphinx,Python Sphinx,我在Python模块(vengence.directions)中有一些“常量”,我正试图使用这些常量生成合理的文档。这些“常量”的值是对象(类型:Direction),而不是文字值,并且不会生成特别有用的文档: #: North (opposite: SOUTH). NORTH = _NORTH_SOUTH.direction #: South (opposite: NORTH). SOUTH = _NORTH_SOUTH.opposite #: East (opposite: WEST).

我在Python模块(
vengence.directions
)中有一些“常量”,我正试图使用这些常量生成合理的文档。这些“常量”的值是对象(类型:
Direction
),而不是文字值,并且不会生成特别有用的文档:

#: North (opposite: SOUTH).
NORTH = _NORTH_SOUTH.direction

#: South (opposite: NORTH).
SOUTH = _NORTH_SOUTH.opposite

#: East (opposite: WEST).
EAST = _EAST_WEST.direction

#: West (opposite: EAST).
WEST = _EAST_WEST.opposite
.rst
文件包含以下内容:

.. automodule:: vengeance.directions
    :members:
    :undoc-members:
    :show-inheritance:
生成的输出(或多或少)如下所示:

复仇。方向。东方=

东(对面:西)

复仇方向北=

北(对面:南)

vengeance.directions.SOUTH=

南(对面:北)

vengeance.directions.WEST=

西(对面:东)

文字值会产生更有用的文档,例如:

复仇方向东=2

我希望能够生成类似的东西,删除
,也许用
方向的值替换它。\uu str\uuu()
方法。这还可以避免添加额外的文档。换句话说,我希望能够简单地写下:

NORTH = _NORTH_SOUTH.direction
SOUTH = _NORTH_SOUTH.opposite
EAST = _EAST_WEST.direction
WEST = _EAST_WEST.opposite
生成:

复仇。方向。东=东(对面:西)

复仇方向北=北(相反:南)

vengence.directions.SOUTH=南(相反:北)

复仇。方向。西=西(对面:东)

如何实现这一点?

在(2013年12月10日发布)中,有一个新选项用于
autoattribute
autodata
(但不是
automodule
autoclass
),可能会有帮助:

模块数据和属性的Autodoc指令现在支持
注释
选项,因此可以覆盖数据/属性值的默认显示

这并没有使事情像问题中设想的那样简单,但这是一种改进

另见