报告为"无"的属性的Sphinx值

noi*_*oio 12 python python-sphinx

当我使用狮身人面像车博士来记录一类,为属性的值总是报道,(因为它说,它应该在这里,在#437),但始终是"=无"

Attribute = None
    Some Documentation
Run Code Online (Sandbox Code Playgroud)

我把它包括在内

.. autoclass:: core.SomeClass
   :members:
Run Code Online (Sandbox Code Playgroud)

我的代码看起来像

class SomeClass(object):
    def __init__(self):
        self.attribute = "value" #: Some Documentation
Run Code Online (Sandbox Code Playgroud)

有没有办法让"=无"报告真正的价值,或让它消失?

Jon*_*yJD 9

在即将发布的sphinx版本1.2(以及第二个测试版)中将有一个:annotation:选项(请参阅pull-request).

对于autodata/ autoattribute您可以强制特定值或抑制它.因此,为了不打印您要放置的属性的值:

.. autoclass:: core.SomeClass

   .. autoattribute:: attribute
      :annotation:
Run Code Online (Sandbox Code Playgroud)

目前它只能autodata/ autoattribute直接使用而不是递归地使用automodule/ autoclass.


mzj*_*zjn 5

我很确定这与您的属性是实例属性这一事实有关.在实例化类之前,它不会获得值.Sphinx导入模块以检查它们,但它不会实例化任何类.

所以Sphinx并不知道"真正的价值",None而是输出.我认为你不能让它轻易消失(但我想如果你准备修补Sphinx源代码,任何事都有可能......).如果您不喜欢这样,您可以在类的docstring中记录属性.

使用相同标记方案(此处描述)记录的类属性确实会在呈现的输出中显示其值.但是没有明确的迹象表明读者可以轻松区分类和实例属性.也许Sphinx在这里可能会更有帮助.