31

PEP 257说:

文档字符串处理工具将从文档字符串的第二行和后面的行中去除均匀的缩进量,等于第一行之后所有非空行的最小缩进量。文档字符串第一行中的任何缩进(即,直到第一个换行符)都是微不足道的并被删除。保留文档字符串中后面几行的相对缩进。应该从文档字符串的开头和结尾删除空行。

trim然后在 PEP 中显示了实现该算法的函数。

我可以找到人们询问如何格式化文档字符串并参考 PEP 257(例如this)的问题。我还看到了一些关于尝试确保您的文档字符串遵循 PEP 257 的工具的信息(例如,this)。我找不到的是任何 Python 库,它实际上一个“文档字符串处理工具”,它以 PEP 257 中定义的方式处理文档字符串——或者至少,我找不到一个工具可以直接使这个文档字符串处理功能可用的。

PEP 257 中显示的函数是否trim存在于标准库中?显然,我可以自己将函数粘贴到文件中,但如果我正在使用需要此功能的其他计算机,我更愿意从标准库中使用它,而不是总是从 PEP 复制和粘贴。鉴于该函数位于由 BDFL 共同编写的 PEP 中,我原以为会有一些官方或半官方的库来执行此操作。

我想要这个的原因是编写一个装饰器,对类/函数的文档字符串进行一些 Python 内部的重新格式化。我不想生成 HTML 或其他任何东西;我只想更改实际对象的实际文档字符串。我想获取 Python 对象的纯文本__doc__属性并将其重新格式化为将用作__doc__Python 对象的纯文本属性的内容。

4

1 回答 1

45

在寻找相关问题的答案时,我设法找到了这个问题的答案。该trim算法在inspect.cleandoc所有地方实现。

于 2014-03-28T21:31:08.747 回答