我想用我的doc文件渲染一个类的属性(这是一个类)

时间:2017-06-12 15:01:33

标签: python class documentation python-sphinx autodoc

class Parameters(dict):
     """ Some doc here """
     pass

class System(object):
     Parameter = Parameters
     """ The default parameters attribute builder """

     def __init__(self):
         self.parameters = self.Parameters()

问题是当我使用sphinx执行autoclass系统时,文档参数将不是我所写的Parameter = Parameters,但它将是Parameter类的完整文档。我不希望这样,它太乱了,与我的.Parameters属性不匹配(可以是一个Parameters类,但也是一个函数,或dict(a=0,b=1).copy等...)。

System
======
.. autoclass:: system.System
    :members: __init__,Parameters

我找到的唯一方法是先将参数设置为无,然后在初始化时更改它,但由于其他原因不方便

class System(object):
    Parameter = None
    """ The default parameters attribute builder """

 def __init__(self):
     if self.Parameters is None:
         self.Parameters = Parameters
     self.parameters = self.Parameters()

1 个答案:

答案 0 :(得分:1)

可以这样做吗?

class Parameters(dict):
    pass

class System(object):

    def __init__(self, Parameters):
        self.parameters = Parameters


parameters = Parameters()
parameters['x'] = '3.14'
parameters['y'] = '1.618'

system = System(parameters)

print(system.parameters)

{'y': '1.618', 'x': '3.14'}