在 twisted 的源代码中,很多文档字符串包含如下格式:L{xxx} 或 C{xxx} 或者以 ‘@’ 开头的行,它们的含义是什么?
例如,在 twisted/internet/interfaces.py 中:
def registerProducer(producer, streaming): """ Register to receive data from a producer. ... For L{IPullProducer} providers, C{resumeProducing} will be called once each time data is required. ... @type producer: L{IProducer} provider ... @return: C{None} """
L{IPullProducer},C{resumeProducing},@type生产者?
顺便问一下,这些格式是标准 Python 文档字符串格式的一部分吗?如果是,我应该参考哪里?谢谢 :)
在 Twisted 的源代码中,文档字符串中的L{}、C{}和@格式是 Twisted 使用的自定义文档系统的一部分,而不是标准 Python 文档字符串格式。这些特定格式最初旨在与PyDoctor一起使用,PyDoctor 是一种为 Twisted 项目生成 HTML 文档的工具。以下是每种格式所代表内容的细分:
L{}
C{}
@
L{IPullProducer}
IPullProducer
C{resumeProducing}
@type
@param
@return
@rtype
在您的示例中,这些文档字符串传达有关参数和预期类型的信息registerProducer,producer同时还链接到相关的类/接口并强调代码风格中的某些术语。
registerProducer
producer
不,这些标签(L{}、C{}、@type等)不是标准 Python 文档字符串约定的一部分,例如 reStructuredText 或 NumPy/SciPy 样式的文档字符串。它们是 Twisted 文档约定的一部分,主要由 PyDoctor 支持。
如果您有兴趣在自己的代码中使用这些约定,您可以参考Twisted文档指南或了解有关 PyDoctor 用于生成链接 HTML 文档的用法的更多信息。