[英]Store contents of help() in a variable: Python
When we use the help() function it just displays the text and I can't store it in a variable...当我们使用 help() function 时,它只显示文本,我无法将其存储在变量中......
h = help ( 'eval' ) # Doesn't work
So what do I do?那我该怎么办? And if I need to use PyDoc, how do I do it?如果我需要使用 PyDoc,我该怎么做?
The simple way it to use the __doc__
attribute as @Thomas said正如@Thomas 所说,使用__doc__
属性的简单方法
If you want the exact output as what help(something)
gives, then use如果您想要确切的 output 作为help(something)
给出的,然后使用
import contextlib
import io
out_io = io.StringIO()
with contextlib.redirect_stdout(out_io):
help(eval)
out_io.seek(0)
# out has what you're looking for
out = out_io.read()
contextlib.redirect_stdout
temporarily patches sys.stdout to any file like object you pass it contextlib.redirect_stdout
临时将 sys.stdout 修补到任何文件,如 object 你传递它
We pass in a StringIO
object as the file-like object and it gets the printed value written to it我们将StringIO
object 作为类似文件的 object 传入,它会获取写入的打印值
Then finally the StringIO
object is seeked back to the start and read from然后最后将StringIO
寻回开始并从
The __doc__
attribute is what you're looking for: __doc__
属性是您正在寻找的:
>>> h = eval.__doc__
>>> h
'Evaluate the given source in the context of globals and locals.\n\nThe source may be a string representing a Python expression\nor a code object as returned by compile().\nThe globals must be a dictionary and locals can be any mapping,\ndefaulting to the current globals and locals.\nIf only globals is given, locals defaults to it.'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.