![](/img/trans.png)
[英]Cross reference documentation of function or class in Sphinx for Python
[英]Sphinx class attribute documentation
我一直在尝试记录基于MongoEngine的应用程序,但是我在Document类上记录属性时遇到了问题。
我采用了正确的语法,如下所示:
class Asset(Document):
#: This is the URI of the document
uri = StringField()
我已经尝试过各种记录这些属性的方法,我发现这些属性甚至添加了一个不是MongoEngine字段的属性,只是为了确保这不是问题所在:
class Asset(Document):
"""
The representation of a file uploaded into the data store.
"""
#: This is a test attribute.
foo = 'bar'
"""baz?"""
#: This is a URI.
uri = StringField(required=True)
"""This is a URI """
我已在相应的.rst
文件中尝试了各种指令组合。 目前它看起来像这样:
.. currentmodule:: mymodule.asset
.. autoclass:: Asset
.. autoattribute:: Asset.foo
.. autoattribute:: Asset.uri
输出不是很令人满意: foo
属性根本没有显示文档,uri字段有MongoEngine的“一个unicode字符串字段”。 ( StringField
类的文档)作为文档。 此外,属性文档不会放在类的“下”(与automodule +:members: - 一起输出所有带有MongoEngine描述的字段)
我想念狮身人面像扩展吗? 或者我搞砸了语法?
要将类的成员放入文档中,请使用:members:
选项:
.. autoclass:: Asset
:members:
如果没有:members:
, 只插入类docstring 。
另请参见autodoc_default_flags
配置选项。
您可以使用autoattribute
获得与上面相同的结果,并且不使用:members:
注意缩进):
.. autoclass:: Asset
.. autoattribute:: foo
.. autoattribute:: uri
我无法重现使用StringField的docstring记录uri
属性的问题。
我正在使用Sphinx 1.2.2。
事实证明这个问题是由于mzjn的回答而引起的:我必须完全限定类我是..autoclass::
ing因为我为..currentmodule::
指定的模块导入使用了from x import y
语法,即以下语法有效:
.. currentmodule: mymodule.asset
.. autoclass: mymodule.asset.Asset
:members:
长话短说: 检查你的进口!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.