Skip to content
software engineering #introspection, metaprogramming, documentation

Get Python's help() function stored as string just like console

· 1 min read · Abdur-Rahmaan Janhangeer

Python’s help function lets you see the help message written for you by the developer. It is particularly useful in IDLE / shell to inspect modules and explore.

Here is a sample shell demo

>>> help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

Now if we want to store that text in a string, if we try x = help(print), we get not a string, but a surprise:

>>> x = help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

>>> x
>>> x
>>> type(x)
<class 'NoneType'>
>>>

Ugh. How the to get the doctring as a string?

In Enters Pydoc

Pydoc is used to generate documentations

Here is the snippet to store the docstring as a variable

from pydoc import render_doc
doctring = render_doc(print)

Simple isn’t it?

instead of print, add any module.