2017-06-12 58 views
4
class Parameters(dict): 
    """ Some doc here """ 
    pass 

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

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

問題是,當我做系統的autoclass與獅身人面像,文件參數不會是我寫的波紋管Parameter = Parameters但將成爲Parameter類的完整文檔。我不希望這樣,它太亂了,不符合我的.Parameters屬性(可以是一個Parameters類,但也是一個函數,或者一個dict(a=0,b=1).copy等)。我想呈現一個類的屬性(這是一個類)我如何DOC

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

當我這樣做,它創建[this](https://i.imgur.com/ILGy48l.png),這似乎是你想要的。另外,由於它是一個屬性,它應該是'parameter = Parameters',因爲CamelCase是爲類名保留的。 – Artyer

+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'} 
+0

你好,謝謝,我的問題只是用sphinx doc渲染的。在我的程序中,Parameter屬性必須是在子類中定義的參數的構造函數,不應該是參數os'System'。例如:在System子類定義中,參數= dict(x = 3.14,y = 1.618).copy'。 – user3240484

+0

對不起,明白了! –

相關問題