我寫了一個python類,並用sphinx做了文檔。例如,類看起來像:現在autodoc和顯式指定實例屬性的問題
class Aclass(object):
""" my class """
def __init__(self):
""" constructor """
self.a = None
""" doc for attribute a """
self._prop = None
def _get_prop(self):
""" getter prop """
return self._prop
def _set_prop(self, val):
""" setter prop """
self._prop = val
prop = property(_get_prop, _set_prop)
""" a property """
def square(self):
""" return square of a """
return self.a**2
,爲了做文檔,在第一個文件中我寫道:
.. autoclass:: aclass.Aclass
:members:
其一切ok,並a
,prop
和square
出現在文件。
,但如果我嘗試separatly文件的屬性和方法,獅身人面像說,它cannont找到屬性,但它爲支柱。
.. autoattribute:: aclass.Aclass.prop
.. autoattribute:: aclass.Aclass.a
的錯誤信息是:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/sphinx/ext/autodoc.py", line 326, in import_object
obj = self.get_attr(obj, part)
File "/usr/lib/python2.7/dist-packages/sphinx/ext/autodoc.py", line 232, in get_attr
return safe_getattr(obj, name, *defargs)
File "/usr/lib/python2.7/dist-packages/sphinx/util/inspect.py", line 70, in safe_getattr
raise AttributeError(name)
AttributeError: a
/home/gvallver/dev/sphinx/doc/source/index.rst:17: WARNING: autodoc can't import/find attribute 'aclass.Aclass.a', it reported error: "a", please check your spelling and sys.path
我讀的地方Sphinx values for attributes reported as None該斯芬克斯不isntantiate類,因此存在類屬性(如丙)和實例屬性之間的差(作爲) 。但是,我怎樣才能在文檔中引用實例屬性?
實際上,如果在第一個文件中沒有顯式詢問實例屬性,例如,這將工作:
.. autoclass:: aclass.Aclass
:members:
但這並不
.. autoclass: aclass.Aclass
:members: a
美國洛特的解決方案圍繞提供了額外的工作,這一點:http://stackoverflow.com/questions/3959615/how-can-i-make-python-sphinx-document-object-attributes-only -declared功能於INIT – ecoe