【问题标题】:How to document linkable constants with sphinx如何用 sphinx 记录可链接常量
【发布时间】:2018-11-22 16:07:45
【问题描述】:

我怎样才能正确记录一个常量,比如foo = 4 在 Python(3) 中使用 Sphinx 编写代码,我可以使用类似 :attr:`foo` 的方式访问它们?

我目前的解决方案是创建一个类并将常量移动到属性中:

class Constants:
    @property
    def foo(self):
        """Cool Documentation."""
        return 4

然后在classes.rst文件中添加:

..autoclass:: Constants
   :members:

但这不应该是正确的做法, 因为它迫使我在我的代码中携带Constants 的实例。

如果它很重要: 我正在使用 Numpy 样式

【问题讨论】:

  • 我已经读过那个,但是我真的找不到那里的解决方案。似乎指令 automodule 或 autodata 可能会有所帮助。但是我不能让它工作。
  • 这个问题有五个答案。请向我们准确展示您的尝试(最好以minimal reproducible example 的形式)。
  • 感谢您的推动!我玩了一下帖子中的答案。到目前为止,我的错误是由于我对如何使用 sphinx 指令缺乏了解造成的。 (不幸的是,情况仍然如此)。我使用 .. autoclass:: . :members: 与 enum.Enum 类和 #: Comments 结合使用,这并没有给我想要的文档样式。但是,在下面的回答中,我陈述了我当前的解决方案。我很乐意收到您对此的反馈。

标签: python constants python-sphinx


【解决方案1】:

我为我的问题找到了一个合理的解决方案。我添加了一个文件constants.py

    #: :obj:`int` : 
    #: Cool documentation about foo
    foo = 4

我在classes.rst 中添加了这些行

    .. automodule:: MODULE_WHERE_THE_FILE_IS_IN.constants
        :members:

这会创建一个 foo 常量的文档,我可以使用以下命令创建指向 foo 的链接:

    :const:`MODULE_WHERE_THE_FILE_IS_IN.constants.foo`

或

    :const:`~MODULE_WHERE_THE_FILE_IS_IN.constants.foo`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 2015-02-04
    • 2011-11-05
    • 1970-01-01
    • 2011-11-03
    • 2012-10-28
    • 1970-01-01
    相关资源
    最近更新 更多