When we use the help() function it just displays the text and I can't store it in a variable...
h = help ( 'eval' ) # Doesn't work
So what do I do? And if I need to use PyDoc, how do I do it?
The simple way it to use the __doc__
attribute as @Thomas said
If you want the exact output as what help(something)
gives, then use
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
We pass in a StringIO
object as the file-like object and it gets the printed value written to it
Then finally the StringIO
object is seeked back to the start and read from