插入图像并保留成员的默认顺序

Insert an image and preserve the default order of members

我想在 Sphinx 中使用某些方法后得到图像,我有:

Foo
============

.. autoclass:: Bar.foo
    :exclude-members: baz

    .. automethod:: baz
    .. image:: ./images/baz_graph.png

问题是方法的顺序混淆了,方法 baz 现在是第一个出现的方法,甚至在 __init__ 之前出现(默认顺序是 bysource)。

我想要的是在一个方法之后插入一个图像,并让该方法和图像按 bysource 顺序排列。

没有办法像你想的那样解决这个问题。对任何排序选项和成员 :member:undoc-member:private-members: 等使用任何 .. automethod:: directive inside an .. autoclass:: directive (any directive declared for a member inside the containing outer directive) automatically places that declaration ahead of the remaining automated order options...

您必须以某种方式定义顺序,而 :bysource: 选项强加一种顺序;明确的指令声明强加了一个额外的顺序来取代前者。要对单个成员进行排序,您可以混合前两种排序,但如果这两种排序不能像您希望的那样工作,那么剩下的唯一可能的排序是 .rst 文件中每个成员的有序指令声明。

当然,显式声明尽可能少的成员并让自动选项填充剩余的成员很方便...但是如果您还想在每个成员下方包含一个图像,您唯一的选择是声明内部指令明确地使用 .. image:: 指令。