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?
On
The __doc__ attribute is what you're looking for:
>>> 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.'
The simple way it to use the
__doc__attribute as @Thomas saidIf you want the exact output as what
help(something)gives, then useExplanation:
contextlib.redirect_stdouttemporarily patches sys.stdout to any file like object you pass itWe pass in a
StringIOobject as the file-like object and it gets the printed value written to itThen finally the
StringIOobject is seeked back to the start and read from