2017-06-06 50 views
0

如何從reStructuredText獲取屬性的類型? 我有這樣的事情。如何從reStructuredText獲取屬性的類型?

@property 
def port(self): 
    """Get port. 

    :return: port 
    :rtype: str 
    """ 
    return self._port 

如何獲得屬性類型(str)?

+0

你爲什麼要這樣做? –

+0

我需要它像數據庫的類型 –

+0

然後你在吠叫錯誤的樹。 Docstrings適用於人類,不適用於元編程,依靠doctrsing分析最多隻會是脆弱的。如果你想要一些可靠的東西,你必須編寫一個適當的屬性 - > sql類型映射。 –

回答

1

代碼片段是你的嗎?如果是的話,你可以使用任何你喜歡的機制,例如直接添加一個屬性到函數以供日後檢查:SomeClass.port.fget.return_type = int。嘗試一下,它的作品。只要注意通過班級資格,而不是通過實例(或在實例上使用.__class__)。

如果沒有,parseport.__doc__並提取相關字段。

如果您受CPU限制,仍然可以使用例如沒有ORM層的SQLAlchemy。它可以提前從表模型生成非常有效的SQL,例如,例如,在啓動期間。然後你只需用正確的參數調用它們,而不需要花費CPU時間。在大多數情況下,數據庫往返都會使查詢創建和結果解碼變得相形見拙。

同樣適用於解析RST:您可以提前做到這一點,例如,作爲構建步驟,並將信息存儲在易於解析的文件中,例如, JSON甚至是醃製的Python數據,並將其快速加載爲啓動。

相關問題