使用sphinx的autodoc对属性进行Docstring继承

jte*_*ace 2 python python-sphinx autodoc

我有一个这样的课:

class MyBase(object):
   x = 3
   """Documentation for property x"""
Run Code Online (Sandbox Code Playgroud)

和另一个继承它的类:

class MyObj(MyBase):
   x = 0
Run Code Online (Sandbox Code Playgroud)

当我使用sphinx的autodoc生成文档时,MyObj.x没有记录.有没有办法从中继承docstring MyBase.x?我找到了DocInherit,但由于它使用了一个装饰器,它只适用于类方法.有什么方法可以用属性做到这一点?

jte*_*ace 5

我找到了使用属性函数的变通方法:

class MyBase(object):
   _x = 3
   x = property( lambda s: s._x, doc="Documentation for property x")

class MyObj(MyBase):
   _x = 0
Run Code Online (Sandbox Code Playgroud)

给定一个实例变量,这很好:

>>> m = MyObj()
>>> m.x
0
Run Code Online (Sandbox Code Playgroud)

一个人可以打电话help(m)并获得适当的财产文件,x而狮身人面像也可以正确地选择它.