如何从 reStructuredText 获取属性类型?

How get Type of attribute from reStructuredText?

如何从reStructuredText中获取属性类型? 我有这样的东西。

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

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

如何获取属性类型 (str)?

代码片段是你的吗?如果是,您可以使用任何您喜欢的机制,例如直接向函数添加一个属性以供以后检查:SomeClass.port.fget.return_type = int。试一试,它有效。只注意通过 class 来限定 属性,而不是通过实例(或在实例上使用 .__class__)。

如果没有,parse port.__doc__ 并提取相关字段。

如果您 CPU-受限,您仍然可以使用例如SQL没有 ORM 层的炼金术。它可以提前从 table 模型 中生成非常有效的 SQL, 例如在启动期间。然后您只需使用正确的参数调用它们,花费相当少的 CPU 时间。在大多数情况下,数据库往返使查询创建和结果解码相形见绌。

同样适用于解析 RST:您可以提前完成,例如作为构建步骤,并将信息存储在易于解析的文件中,例如JSON 甚至是 pickled Python 数据,并在启动时快速加载它。