是否可以使用 python PyDoc 模块来 return 包含内容的字符串而不是仅仅打印它?

Is it possibile to have python PyDoc module to return a string with the content instead of just printing it?

函数 pydoc.doc() returns None,但我想捕获函数打印的输出,如何使用 python 代码实现?

pydoc.docoutput 参数,它应该是支持 .write 的东西,你可以使用 io.StringIO 来达到这个目的,方法如下:

import io
import pydoc
f = io.StringIO()
pydoc.doc(object, output=f)
f.seek(0)
objectdoc = f.read()
print(type(objectdoc))
print(objectdoc)

输出:

<class 'str'>
Python Library Documentation: class object in module builtins

class object
 |  The most base type

请注意 io.StringIO 的行为通常与文件一样,但不保存在磁盘上(=不持久)。我使用 object 作为示例,因为它的文档很短。

为 pydoc.doc

的输出选项创建文本缓冲区
import pydoc
from io import StringIO

buffer = StringIO()
pydoc.doc('math.cos', output=buffer)
text = buffer.getvalue()