在sphinx文档中打印变量值

时间:2014-06-06 11:14:20

标签: python python-sphinx

想象一下我有一个模块名module.py并在其中,我有一个名为_VAR的私有变量,我想在我的sphinx文档中打印它的值。

module.py

_VAR = 20

在狮身人面像中,我想要这样的事情:

index.rst

The value of ``module._VAR`` is :py:print:`module._VAR`

输出结果为:

The value of module._VAR is 20

2 个答案:

答案 0 :(得分:2)

完全可以通过autodoc功能执行您想要的操作。您只需要确保在代码中明确记录该值,如下所示:

_VAR = 20 #: Notice the colon, this tells sphinx to use this comment as docstring for this value

然后,您可以通过automoduleinclude-private进行操作,或者在该变量名称上明确执行autodata,从而将此值添加到您的文档中。

请注意,您可以使用相同的策略(#:)明确记录类的属性,它们将显示在autoclass(或automodule的文档中隐式地将文档类),包括它们被初始化的任何文字值。

答案 1 :(得分:1)

如果Python具有(模块级)常量,那么只需导入模块,Sphinx就可以提取这样的常量。这就是你想要的吗?

我认为这在一般情况下是不可能实现的。您所展示的是模块级名称,该名称将在其他编程语言中显式声明为常量(例如,通过const关键字)。在整个程序运行时间内,不允许更改常量的值。但是,Python中没有常量概念(人们使用常量,只是不更改某些值,但没有语言特性/关键字告诉解释器某个值不允许更改)

因此,我的有根据的猜测是,你提出的建议是不可能的,因为Python缺乏常量。

也就是说,有可能在导入后立即读出模块级变量的所有值。将这些值放入文档可能毫无意义,因为无法保证这些值在整个程序运行时都是正确的。