Python 自动类和实例属性

Python 自动类和实例属性,python,python-sphinx,autodoc,Python,Python Sphinx,Autodoc,根据〈代码〉。。autoattribute指令应该能够记录实例属性。但是,如果我这样做: .. currentmodule:: xml.etree.ElementTree .. autoclass:: ElementTree .. autoattribute:: ElementTree._root 然后在构建时,我会得到一个AttributeError: Traceback (most recent call last):etree.ElementTree.ElementTree

根据〈代码〉。。autoattribute指令应该能够记录实例属性。但是,如果我这样做:

.. currentmodule:: xml.etree.ElementTree

.. autoclass:: ElementTree

   .. autoattribute:: ElementTree._root
然后在构建时,我会得到一个AttributeError:

Traceback (most recent call last):etree.ElementTree.ElementTree                 
  File "/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/sphinx/ext/autodoc.py", line 326, in import_object
    obj = self.get_attr(obj, part)
  File "/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/sphinx/ext/autodoc.py", line 232, in get_attr
    return safe_getattr(obj, name, *defargs)
  File "/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/sphinx/util/inspect.py", line 70, in safe_getattr
    raise AttributeError(name)
AttributeError: _root
即使我实例化
ElementTree
并尝试访问
\u root
属性,它仍然可以正常工作:

>>> from xml.etree.ElementTree import ElementTree
>>> e = ElementTree()
>>> hasattr(e, '_root')
True
我做错了什么


(实际上,我自己的一个类有这个问题,但我只是使用ElementTree类作为示例,因为它在标准库中)

这看起来像是处理非公共实例属性的错误。斯芬克斯应该能够识别

我不能说这应该怎么解决。有一个打开的错误报告似乎与此相关:

如果将以下行添加到ElementTree.py中的
ElementTree
类的定义中

__slots__  = ["_root"]

然后你得到的
属性错误就消失了。

我也确认了。你知道这是否已修复,如果已修复,版本是什么吗?链接的错误报告已于2019年5月30日关闭。