我希望用我的doc方式呈现一个类的属性(这是一个类)

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做一个System的autoclass时,文件参数将不是我写的下面的参数=参数但是将是Parameter类的完整文档.我不希望这样,它太乱了,与我的.Parameters属性不匹配(可以是一个Parameters类,也可以是一个函数,或者一个dict(a = 0,b = 1).copy等… ).

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

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

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()

最佳答案 可以这样做吗?

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'}
点赞